【LuaFramework】LuaFramework_UGUI_V2框架学习

GitHub - jarjin/LuaFramework_UGUI_V2: 基于tolua的热更新框架V2

旧版本是Unity 5.0,这个是新版本支持更高版本的

导入工程后先清除wrap 然后重新生成wrap,你会发现有个报空null,框架的问题总结下所有的框架wrap相关报错问题和修复方法:

CustomSettings.cs脚本搜ParticleSystem,注释掉一行

_GT(typeof(ParticleSystem)),

ToLuaExport.cs脚本搜memberFilter列表初始化添加以下代码:

        "QualitySettings.streamingMipmapsRenderersPerFrame",
        "MeshRenderer.scaleInLightmap",
        "MeshRenderer.receiveGI",
        "MeshRenderer.stitchLightmapSeams",        
        "Light.SetLightDirty",

这些类、类成员、类方法都不支持生成wrap,如果你想要使用它们,可以自定义一个C#脚本去间接地使用它们,也就是做个适配器,自定义的脚本要放入CustomSettings.cs的customTypeList列表中,不然是无法生成wrap交给Lua使用的。

紧接着执行如下图,生成资源文件,不生成无法执行项目,搜索"main"场景执行。

启动游戏时会执行StartUp方法发送START_UP事件,执行StartUpCommand类的方法

Util.CheckEnvironment()是检查是否执行过Build xxx Resource导出资源的,没有会关停游戏。

场景搜索“GlobalGenerator”发现是找不到的,因此AppView没有生成

可以发现是一个名为NetworkManager的服务器管理类进行派发服务器消息给到SocketCommand处理。

C#侧调用lua侧的Network.OnSocket(key, value)方法,可以直接找Network.lua文件打开找到OnSocket方法如下

Event.Brocast是Lua侧的事件派发,事件名是key,数据是data
我们可以使用idea打开Lua所在的根目录文件夹,并且搜索Event.AddListener获知有哪些监听。

里面分别对应的代码就不阐述了,回过来看其他框架行为,即StartUpCommand.cs脚本

生成管理器:AppFacade.Instance.AddManager<LuaManager>(ManagerName.Lua);
获取管理器:LuaManager mgr = AppFacade.Instance.GetManager<LuaManager>(ManagerName.Lua);

其他与V1版本看着是差不多,如果有差别可以检查下,V1版本原文:

LuaFramework 2018版本 小结_luaframework 最新-优快云博客

服务器框架部分【LuaFramework】服务器模块相关知识-优快云博客

自动生成绑定代码文件,非反射调用 大量内建基础类型支持,如枚举,委托,事件,Type, 数组,迭代器等 支持多种协同形式 支持所有unity内部类导出,支持委托类型导出 支持导出自定义,跳过某个空的基类,修改导出名称等 支持扩展函数自定义导出, 比如DoTween 支持值类型Nullable导出,包括Nullable等 支持Lua中function转委托,可以区分需要不同委托的参数的重载函数 支持c# LuaFunction对象转委托,简化调用方式。 支持无GC的多参数调用形式 支持重载函数自动折叠, 如:Convert.ToUInt32只导出double参数的函数 支持重载函数自动排序, 如:参数个数相同, object参数执行级最低, 不会出现错误匹配情况 支持导出函数重命名, 可以分离导出某个重载函数(可以导出被折叠掉的函数) 支持使用编辑器类改写导出规则 支持this数组访问,索引为int可以通过[]访问,其他可使用.get_Item或者.this:get()访问数组成员 支持委托(事件)+-lua function。支持通过函数接口的Add和Remove委托操作 支持静态反射操作, 形式同c# 支持peer表,可在lua端扩展导出的userdata 支持自定义struct压入和读取,做到无GC,并且结构成员无类型限制, 参考例子24 支持preloading, 可以通过requie后绑定wrap文件 支持int64, uint64 大量的lua数学类型,如Quaternion, Vector3, Mathf等 包含第三方lua扩展,包括luasocket, struct, lpeg, utf8, pb等库 当lua出现异常,能够同时捕获c#端和lua端堆栈,便于调试 print信息,在编辑器点击日志, 能自动打开对应lua文件 支持unity所有版本 支持Lua hook C#相代码实现,一定程度上支持利用Lua代码修改C#端代码的bug(暖更新使用说明)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值