因为项目需要,近期了解一下在unity3d引擎中使用tolua以及strangeioc相关的内容,同时做了一个测试工程,当做部分工作的总结吧。
主要参考内容:
Git: tolua
FairyGUI教程
StrangeIOC官网
demo地址:
https://github.com/qufangliu/Demo_LuaStrangeIOC.git
具体接入流程,以及测试代码可以在commit中看到。
首先创建了一个新的unity3d项目。
接入tolua#
从git上拉去到tolua#源码,然后就进入了拷贝代码流程。
- 拷贝tolua/Editor/Custom到myproj/Editor/ToLua/Custom
- 拷贝tolua/Plugins到myproj/Plugins/ToLua
- 拷贝tolua/Source到myproj/Source
- 拷贝tolua/ToLua到myproj/ToLua
接入FairyGUI,以及lua支持
FairyGUI是一个UI编辑工具,支持各种引擎,编辑器本身还支持各种插件,可以提升UI编辑效率,所以这里接入了这个插件。
从官网的产品页找到unity SDK下载地址,下载完成之后进入拷贝文件的流程。
- 拷贝fairy/Plugins到myproj/Plugins/FairyGUI
- 在FairyGUI编辑器中建一个测试工程,拖入一些测试资源,最后发布到Unity3d项目中(资源导出路径myproj/Resources/UI,代码导出路径myproj/Scripts/UI)
接入tolua支持,可以依照SDK中LuaSupport/ToLua里的提示进行文件拷贝与修改,相当方便。
这里其实还可以给编辑器添加插件,让它导出UI的lua代码,使得在使用lua语言编辑UI时有对应的提示,更不容易出错。当然,不导出lua代码也是可以用的,为UI导出的代码实际上只是提供了一个类,便于引用UI界面包含的各个控件而已。
接入StrangeIOC(View移除版)
在我的Demo中,接入的StrangeIOC并不是原版,在此之前,我将StrangeIOC中的View相关的部分全部删除了,因为原版中View是做的UGUI的支持,我需要使用FairyGUI,所以不需要原版的View部分。相关我考虑在另外一篇博客中来写。
接入StrangeIOC的过程依然很简单,只是将插件拷贝到myproj/Plugins/StrangeIOC中。至于测试,在这个Demo中只是为ContextEvent.START绑定了一个StartCommand,没有创建Model,不过这套东西在另一个项目中验证过了。
StrangeIOC是一个MVCS框架,这个Demo中虽然接入了tolua#,但是lua和StrangeIOC并没有直接的联系。
总结:
框架是死的,人是活的。乍一看,接入的这些东西并没有什么联系,甚至有些混乱。但是,他们都是各有作用的,至于怎么使用和结合,就需要自己思考了。