![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
XLua
文章平均质量分 58
白鹭float.
这个作者很懒,什么都没留下…
展开
-
【Unity/XLua】xlua自带教程示例分析(9)—— 泛型方法
这个示例工程主要是为了说明在什么情况下Lua调用不了C#的泛型方法。以上规则对于扩展方法也是适用的,示例工程中也有测试。一个或多个泛型参数都可以被Lua调用。原创 2024-08-08 01:45:39 · 253 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(8)—— 热修复
热修复是使用lua进行游戏业务逻辑迭代的一个非常重要的部分,它可以在不重新编译,且不依赖反射的情况下轻松的实现逻辑上的更新替换。该案例内分多个小案例。原创 2024-08-08 00:49:27 · 311 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(6)—— lua协程
前者定义了一个继承自Monobehavior的脚本组件,后者则使用lua去在Unity中实例化一个挂载该组件的GameObject,并将其设置为DontDestroyOnLoad,将其开启和停止协程的方法封装成一个表返回。接着在lua文件中去请求工具文件cs_coroutine,让其创建一个辅助lua协程的对象,并接收一个封装了该对象的创建和停止协程的方法的表。接着通过向start函数中传入lambda函数来创建协程,使用本地变量保存这些协程,传入stop函数中可以终止这些协程。原创 2024-08-07 20:19:27 · 432 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(7)—— 同步测试
这个方法直白的说可以将异步函数转换成一个同步函数,具体表现就是将在异步函数中向回调函数传入的值,直接改造成同步函数的返回值,使用一个新的lua变量接收async_to_sync (异步函数)的返回值即是构造好的同步函数。语句来转到lua脚本的运行。message_box内部访问上述两个C#静态函数并利用async_to_sync 将其改造成同步函数,返回一个封装了这两个函数的表以供其他模块require。然后自己构造一个模拟的异步充值的函数,再使用async_to_sync将其转换成同步函数。原创 2024-08-07 23:03:48 · 638 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(五)—— 优化GC
在Xlua中,使用[GCOptimize]可以避免C#和Lua间传递值类型(普通值类型,只包含值类型的strcut或嵌套struct,枚举类型,以及它们组成的数组)时发生gc alloc。首先最重要的一点是,类要加上LuaCallCSharp的标签,因为后面会在里面向Lua传入自己的this指针,因此lua是可以调用类的。monoBehaviour是在C#中set的变量,即this,所以这里是在使用C#函数处理lua对象。前五个委托接收Lua的id函数,不同的值类型数据都测了一遍(从C#传lua再传回来)原创 2024-08-06 00:17:10 · 905 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(四)—— 使用C#接口和委托获取lua定义的表和对应特殊方法
其次是ICalc接口,该接口对应了luaCalc的返回值,其既声明了calc_mt元表中的字段,又声明了如Mult这个在luaCalc的New方法中才声明的字段。在lua中,其对应了set_item中的 self:notify({name = index, value = value}) 中输入的参数。最后是委托方法,该方法对应了luaCalc的New函数,输入的参数一样,使用ICalc接口来接收对应值。其次是get_Item和set_Item,也会在C#中使用[]运算符重载时调用,算是一种命名规范。原创 2024-08-05 17:57:45 · 519 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(三)—— 使用C#为lua注入依赖,使用lua绑定UI事件
其通过self(即Button上的LuaBehavior组件),传入组件名称来获取自身的Button组件,并为onClick事件添加监听函数。函数内容中使用到了注入的input依赖,该input是一个GameObject,获取其身上的InputField组件中输入的text值并打印。在UI面板上创建一个Button和一个InputField,将LuaBehavior挂载到Button下。这个脚本中只有一个start函数,基于该C#类的功能,这个lua函数会和C#类一样,在Start时执行。原创 2024-08-05 16:47:44 · 388 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(二)—— 使用C#控制Lua生命周期函数并为其注入Unity物体依赖
lua脚本中,访问了注入的lightObject,并由其成员函数获得该GameObject上的灯光组件使用CS.UnityEngine访问Unity的变量和函数,设置自身(self在后续C#中被设为了this)的旋转,以及灯光组件的颜色。原创 2024-08-05 16:13:00 · 425 阅读 · 0 评论 -
【Unity/XLua】xlua自带教程示例分析(一)——打印Hello world
第三步 使用LuaEnv的DoString方法直接运行字符串存储的lua语句(字符串前使用@可强制不进行转义)第二步 在类中或Start函数中创建Lua虚拟机环境。第四步 在结束使用后使用Dispose释放Lua环境。第一步 创建Monobehavior脚本。原创 2024-08-05 16:11:23 · 461 阅读 · 0 评论