【LuaFramework】LuaFramework_UGUI_V2框架学习

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

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

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

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

cs 复制代码
_GT(typeof(ParticleSystem)),

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

cs 复制代码
        "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 最新-CSDN博客

相关推荐
Kiri霧26 分钟前
Range循环和切片
前端·后端·学习·golang
hssfscv2 小时前
Javaweb 学习笔记——html+css
前端·笔记·学习
Mr.Jessy2 小时前
JavaScript高级:深浅拷贝、异常处理、防抖及节流
开发语言·前端·javascript·学习
脸大是真的好~2 小时前
分布式锁-基于redis实现分布式锁(不推荐)- 改进利用LUA脚本(不推荐)前面都是原理 - Redisson分布式锁
redis·分布式·lua
博客胡2 小时前
Python-fastAPI的学习与使用
学习·fastapi·ai编程
HyperAI超神经3 小时前
【Triton 教程】triton_language.load
人工智能·学习·大语言模型·cpu·gpu·编程语言·triton
知识分享小能手3 小时前
Ubuntu入门学习教程,从入门到精通,Linux操作系统概述(1)
linux·学习·ubuntu
yuhaiqun19894 小时前
Typora 技能进阶:从会写 Markdown 到玩转配置 + 插件高效学习笔记
经验分享·笔记·python·学习·学习方法·ai编程·markdown
我命由我123454 小时前
Python Flask 开发问题:ImportError: cannot import name ‘Markup‘ from ‘flask‘
开发语言·后端·python·学习·flask·学习方法·python3.11
全栈陈序员5 小时前
【Python】基础语法入门(二十)——项目实战:从零构建命令行 To-Do List 应用
开发语言·人工智能·python·学习