大学班级网站建设,网站开发技术代码,微信分享接口网站开发 php,郑州seo优化推广从本篇开始将为大家讲解ToLua在unity当中的使用教程。
Tolua的框架叫LuaFramework#xff0c;首先附上下载链接#xff1a;
https://github.com/jarjin/LuaFramework_UGUI_V2
这个地址的是UGUI的。
下载完之后导入项目#xff0c;首先#xff0c;我们要先让这个项目跑起…从本篇开始将为大家讲解ToLua在unity当中的使用教程。
Tolua的框架叫LuaFramework首先附上下载链接
https://github.com/jarjin/LuaFramework_UGUI_V2
这个地址的是UGUI的。
下载完之后导入项目首先我们要先让这个项目跑起来。 首先点击Lua-Clear wrap files清除所有wrap文件。 然后点击LuaFramework-Build Windows Resource,打包ab资源。 最后点击Lua-Generate All重新生成wrap文件。
但是在我这里生成Wrap文件时出现了一个报错。 经过调试之后发现是ParticleSystem该类生成wrap文件时出现的问题。 所以把这行注释掉重新操作一下就可以了。
然后点击运行。 直到这里我们的项目总算是跑起来了。
接下来我们来看一下这个框架是如何运行的。 在运行之前我们可以看到场景中只有一个GameManager挂载了一个Main脚本顾名思义该脚本就是入口脚本。 游戏一开始调用一个StartUp函数。 在StartUp当中又去调用了一个SendMessageCommand。 该函数调用了m_controller的ExecuteCommand方法。 这个m_controller是一个单例当Facade被构造的时候创建的而我们入口脚本当中的AppFacade类又是继承自Facade的。我们看到当Facade类构造时会调用InitFramework方法。 所以当AppFacade构造时就注册了一个StartUp的类型。 将该枚举对应的类型注册进字典。
我们上面调用了m_controller的ExecuteCommand我们可以看到这个ExecuteCommand函数就是根据传进来的枚举去获取对应的类型然后使用Activator.CreateInstance(commandType)去创建一个这种类型的实例并且调用它的Execute方法。 我们上面注册的时候该枚举对应的类型是StartUpCommand。 看到他的Execute方法。
这里添加了很多个管理器。 他是怎么添加的呢实际上这些管理器都是继承自Monobehaviour的其实就是添加这些组件到GameManager对象上并存进字典当中。那么既然是Monobehaiour那么这些管理器就肯定都有生命周期函数。我们先看到GameManager。 在Awake当中调用了初始化方法Init。然后释放资源。然后热更新对比files文件等等一系列的操作大家可以顺着往下看代码太长不截图了最后我们会看到他执行到了这个方法。 OnInitialize这个方法LuaManager.DoFile(Logic/Game); 这句代码加载Logic文件夹下的Game这个lua文件。这个Game文件可以说是Lua脚本的入口脚本了。可以看到上面的代码它调用了Game脚本的OnInitOK函数来驱动lua脚本。 OnInitOK该函数中他去初始化一些View脚本和Ctrl脚本这里就可以看出来其实Tolua是采用MVC思想的。
看到InitViewPanels方法他去加载PanelNames表的所有脚本。其实就是加载View文件夹下的视图层脚本。
那么视图层脚本的代码就可以使用了。反正Game这个脚本就是一个lua的入口脚本具体大家要怎么做都可以。就是这么个流程。本篇就先讲这么多。