当前位置: 首页 > news >正文

做全景网站电商设计公司排名

做全景网站,电商设计公司排名,商标设计网站有哪些,网站开发流程三部分toluaframework中C#怎么调用Lua的方法 问题Util.CallMethodLuaManager.CallFunctionLuaFunction.LazyCall 解决方案LuaFunction脚本无GC消耗的调用 用法总结 问题 用过luaframework框架的人应该都知道框架提供了Util的工具类#xff0c;工具类提供了一个方法就是Util.CallMet… toluaframework中C#怎么调用Lua的方法 问题Util.CallMethodLuaManager.CallFunctionLuaFunction.LazyCall 解决方案LuaFunction脚本无GC消耗的调用 用法总结 问题 用过luaframework框架的人应该都知道框架提供了Util的工具类工具类提供了一个方法就是Util.CallMethod的方法方便Unity中直接调用lua层的方法。 Util.CallMethod /// summary/// 执行Lua方法/// /summarypublic static object[] CallMethod(string module, string func, params object[] args){LuaManager luaMgr AppFacade.Instance.GetManagerLuaManager(ManagerName.Lua);if (luaMgr null){Debug.LogError(lua模块“ module ”未被找到);return null;}return luaMgr.CallFunction(module . func, args);}LuaManager.CallFunction 下面这里使用的框架提供的方法但是这个方法是有GC的我们在进入到luaMgr.CallFunction中查看一下 // Update is called once per framepublic object[] CallFunction(string funcName, params object[] args) {LuaFunction func lua.GetFunction(funcName);if (func ! null) {return func.LazyCall(args);}return null;}从上面的代码中我们可以看到实际上他调用的是LazyCall()这个方法的返回值是object[]这必然是需要我们自己拆箱装箱有GC的操作尽可能避免拆箱装箱可以减少性能的消耗。 LuaFunction.LazyCall 这个方法作者也提示了是有GC的这里让我们使用的是Invoke的方法调用这样我们不需要有装箱拆箱的转换操作这里可以直接转换成我们需要的数据。 //慎用, 有gc alloc[System.Obsolete(LuaFunction.LazyCall() is obsolete.Use LuaFunction.Invoke())]public object[] LazyCall(params object[] args){BeginPCall();int count args null ? 0 : args.Length;if (!luaState.LuaCheckStack(count 6)){EndPCall();throw new LuaException(stack overflow);}PushArgs(args);PCall();object[] objs luaState.CheckObjects(oldTop);EndPCall();return objs;}解决方案 这里我只举一个例子写一个两个参数的方法多个参数的方法模仿我这个自己写就好了需要多少参数写多少个方法即可 LuaFunction脚本 我们先看看这个脚本作者给我们提供了什么 这里作者给我们提供了无返回值的多参数Call的方法也提供了有返回值的多参数Invoke 无GC消耗的调用 找到LuaManager脚本中原始有GC消耗的脚本在他下方我们加两个多态写法 添加两个无GC消耗的多态方法 // Update is called once per frame 原始有GC的方法public object[] CallFunction(string funcName, params object[] args) {LuaFunction func lua.GetFunction(funcName);if (func ! null) {return func.LazyCall(args);//这里有GC}return null;}//有返回值并且有两个参数的无GC调用方法public R CallFunctionT1,T2,R(string funcName, T1 t1,T2 t2){LuaFunction func lua.GetFunction(funcName);if (func ! null){return func.InvokeT1,T2,R(t1,t2);}return default;}//无返回值并且有两个参数的无GC调用方法public void CallFunctionT1, T2(string funcName, T1 t1, T2 t2){LuaFunction func lua.GetFunction(funcName);if (func ! null){func.CallT1, T2(t1, t2);}}打开Util工具类脚本找到原始有GC的工具类调用方法 在这下方我们写两个调用方法封装一下 /// summary/// 执行Lua方法 有GC/// /summarypublic static object[] CallMethod(string module, string func, params object[] args){LuaManager luaMgr AppFacade.Instance.GetManagerLuaManager(ManagerName.Lua);if (luaMgr null){Debug.LogError(lua模块“ module ”未被找到);return null;}return luaMgr.CallFunction(module . func, args);}//无返回值无GC两个参数的方法public static void NoGCCallMethodT1, T2(string module, string func, T1 t1, T2 t2){LuaManager luaMgr AppFacade.Instance.GetManagerLuaManager(ManagerName.Lua);if (luaMgr null){Debug.LogError(lua模块“ module ”未被找到);}luaMgr.CallFunction(module . func, t1 ,t2);}//有返回值无GC两个参数的方法public static R InvokeMethodT1, T2, R(string module, string func, T1 t1, T2 t2){LuaManager luaMgr AppFacade.Instance.GetManagerLuaManager(ManagerName.Lua);if (luaMgr null){Debug.LogError(lua模块“ module ”未被找到);return default;}return luaMgr.CallFunctionT1, T2, R(module . func, t1, t2);}用法总结 下面是原始有GC的调用方法和无GC的调用方法调用参考
http://www.tj-hxxt.cn/news/222398.html

相关文章:

  • 云南建网站的公司腾讯企业邮箱登录入口手机
  • 国外网站空间 月付免费企业网站认证
  • 用网站做平台株洲网站建设网站
  • 吴忠网站建设wordpress父菜单可点击
  • 网站制作的页面比例中视频自媒体注册
  • 网站开发文本大良网站建设市场
  • 无锡新吴区住房和建设交通局网站做任务的网站源码
  • 海南做网站的公司哪家好高端建设网站企业
  • 校园网站规划与建设心得做网站的公司名称
  • 怎么查网站关键词密度wordpress 侧边收起
  • 南昌知名的网站建设公司网站数据抓取怎么做
  • 南昌有哪些企业网站wordpress页脚小工具
  • 学动漫制作去哪个学校一键优化是什么意思
  • 网站设计和内容上的不足和建议网站可以做章子吗
  • 网站的空间是啥北京网站制作闪快
  • 自己这么做网站青岛仿站定制模板建站
  • 平台网站制作公司杭州设计 公司 网站建设
  • 网站开发 flex网站怎么做可以增加点击率
  • 洛阳建设三轮网站wordpress post 属性
  • 网站建设工作都干啥网站seo优化综合服务公司哪家好
  • 企业网站建设对企业的宣传作用wordpress无法建立到wordpress.org的安全连接
  • 厚街找人做网站网站开发期间账务处理
  • 免费软件下载网站排行网站自适应布局
  • 网站美食建设图片云南省住房和城乡建设厅勘察设计处网站
  • 电商网站开发背景怎么写中小企业还需要网站吗
  • 郑州怎么做外贸公司网站网站后台怎么挂广告 怎么做
  • 响水网站建设公司平安建设 十户长网站地址
  • 未成年人做网站网站开发php工程师
  • 中国优秀的企业网站成crm软件
  • 电脑网站 手机网站 微信网站网站建设企业宣传