LuaFramework 学习记录(二)
2018-01-09 本文已影响345人
食不知味_夜不能寐
这一篇主要关注lua部分。
Game.lua
上一篇中提到各部分初始化完毕后会执行OnInitOK()。
首先设置IP和端口号,然后建立连接。注意区分,这里是真正跟服务器建立连接,随后可以执行登录等操作,而在之前更新lua和资源时,是读取的固定地址AppConst.WebUrl。
框架的lua部分似乎是VC模式,将View和Ctrl分离,没有体现出Model部分,CtrlManager.Init()只是将默认的几个Ctrl实例化,InitViewPanels()也只是require一下相应的View脚本,这时还没加载相应的Panel。
local ctrl = CtrlManager.GetCtrl(CtrlNames.Prompt);
if ctrl ~= nil and AppConst.ExampleMode == 1 then
ctrl:Awake();
end
ctrl:Awake()通过跟C#部分交互,才真正加载了相应的Panel,并执行Ctrl.OnCreate(),这里感觉框架做的有点绕,个人认为Ctrl中不应该包含与MonoBehaviour生命周期中类似的函数(Awake, Start, Update等),将Awake()改为Init()更容易理解?
总的来讲,View中先获取各个子物体,Ctrl完成物体的事件绑定和其他逻辑。
lua部分跟我平时的代码习惯差很多,实际用的时候最好还是自己实现这一部分。