时隔一个多月我又回来啦!
坚持真的是很难的一件事,其它事情稍忙,就很容易说服自己把写博客的计划给推迟了。
好在终于克服了自己的惰性,今天又开始了。
本篇继续我的Luaframework学习之路。
一、规范开发模式此前的示例中,动态加载的panel都默认以GuiCamera为父节点,且面板的大小设置得有些随意,为方便后续开发,现做一些调整和规范。
1、设定本项目的开发分辨率为1334x750(Game视图分辨率也设置为这个大小); 2、调整相机,将原有的GuiCamera从Canvas下拖离出来(与Canvas并列),并做如下设置:(1)Canvas的RenderMode为Screen Space-Camera,并指定Render Camera为GuiCamera;
(2)设定GUICamera的投射模式(Projection)为正交(Orthogratphic);
(3)设置Size为3.75(3.75 = 750 / 100 /2),这样Canvas的Scale就会为0.01;
(4)设置相机的Culling Mask为Everything。
设置效果见下图:
3、调整动态加载panel的父节点为Canvas。找到Assets/LuaFramework/Scipts/Manager下的PanelManager.cs脚本,找到14行,将本行的
GameObject go = GameObject.FindWithTag("GuiCamera");
修改为:
GameObject go = GameObject.Find("Canvas");
如下图,这样动态加载的panel就会以Canvas为父节点。
二、新建一个登陆面板
为了增加学习代入感,后续演示将会以登陆场景和大厅场景为示例,文章展示的所有功能,都围绕这两个场景展开。此处先创建一个登陆面板。
1、创建一个登陆面板创建一个登陆面板,结构层级如下所示,并做成预制体,添加打包。
这一过程详细做法请参见:Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板
2、创建Login相关脚本创建LoginPanel相应的Lua脚本并设置为首先加载。
在创建LoginCtrl.lua和LoginView.lua脚本的时候,要注意在Controller和View下额外加一层目录login,以做模块化管理。
然后在Require这两个脚本的时候,也要包含login目录:
在CtrlManager.lua头部引用时使用:require "Controller/Login/LoginCtrl";
在define.lua中定义PanelName时使用 "Login/LoginPanel"
PanelNames = { "PromptPanel", "MessagePanel", "FirstPanel", "Login/LoginPanel" }