Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

时隔一个多月我又回来啦!

坚持真的是很难的一件事,其它事情稍忙,就很容易说服自己把写博客的计划给推迟了。

好在终于克服了自己的惰性,今天又开始了。

本篇继续我的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。

设置效果见下图:

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

3、调整动态加载panel的父节点为Canvas。

找到Assets/LuaFramework/Scipts/Manager下的PanelManager.cs脚本,找到14行,将本行的

GameObject go = GameObject.FindWithTag("GuiCamera");

修改为:

GameObject go = GameObject.Find("Canvas");

如下图,这样动态加载的panel就会以Canvas为父节点。

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

 

 二、新建一个登陆面板

为了增加学习代入感,后续演示将会以登陆场景和大厅场景为示例,文章展示的所有功能,都围绕这两个场景展开。此处先创建一个登陆面板。

1、创建一个登陆面板

创建一个登陆面板,结构层级如下所示,并做成预制体,添加打包。

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

  这一过程详细做法请参见:Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

2、创建Login相关脚本

创建LoginPanel相应的Lua脚本并设置为首先加载。

在创建LoginCtrl.lua和LoginView.lua脚本的时候,要注意在Controller和View下额外加一层目录login,以做模块化管理。

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

然后在Require这两个脚本的时候,也要包含login目录:

在CtrlManager.lua头部引用时使用:require "Controller/Login/LoginCtrl";

在define.lua中定义PanelName时使用 "Login/LoginPanel" 

PanelNames = { "PromptPanel", "MessagePanel", "FirstPanel", "Login/LoginPanel" }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxpxg.html