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

口碑好的大良网站建设佛山美容网站建设

口碑好的大良网站建设,佛山美容网站建设,免费下载百度并安装,wordpress图片怎么居中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.w-s-a.com/news/174414/

相关文章:

  • 沈阳酒店企业网站制作公司竞价网站怎么做seo
  • 中山企业网站多少钱学网站建设的好处
  • 做官网网站哪家公司好jianux wordpress
  • 插件素材网站新站seo优化快速上排名
  • 网站注销主体填写原因asp响应式h5网站源码下载
  • 电商类网站模板下载济南市建设网官网
  • 万户网络做网站如何采集器wordpress
  • 襄阳网站建设企业查看 wordpress 插件
  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司