Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

在上篇文章 Unity3D热更新之LuaFramework篇[01]--从零开始 中,我们了解了怎么获得一个可用的LuaFramework框架。

本篇将我会先介绍一下如何配置Lua开发环境,然后分析在此框架中加载面板的流程,以及如何创建自己的面板。

1、配置Lua开发环境

有一点要说明的是,使用此种方式(ToLua+LuaFramework)做热更新,则意味着你的大部分逻辑都需要改用Lua语言来编写。

因此,开发前得先得配置好Lua开发环境。毕竟,工欲善其事,必先利其器。

环境配置大概分以下三个步骤:

1.安装IntelliJ IDEA Community Edition 2018.2.4 x64

官网地址 #section=windows

直接下载即可,下载 Community 版本,也就是社区版,免费的

2.下载Lua For Windows

https://github.com/rjpcomputing/luaforwindows/releases

下载最新的就行,然后安装。

3.安装emmylua插件

安装插件有2种方法,可以直接搜插件库安装,或者下载好插件后本地加载。

 

以上安装步骤均来自:三页菌 的文章 最好用的lua编辑器--------emmylua使用汇总。

其文章极其详细的介绍了如何搭建并配置一个好用的Lua开发环境,请自行参考。

 

2、Lua中是怎么加载一个面板的

在上一篇文章最后,我们运行框架,最终显示了一个Lua脚本动态创建的面板,即PromptPanel,如图2-1所示。

Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

图2-1

翻看框架的目录结构,会在Assets/LuaFrame/Examples/Builds/Prompt目录找到两个预制体,PromptPanel和PromptItem,也就是这个面板的主体和兽人头像,如图2-2所示。

Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

图2-2

用上一节中安装的IntelliJ IDEA打开工程目录,在Controller目录和View目录会找到与PromptPanel密切相关的两个文件PromptCtrl.lua、PromptPanel.lua,如图2-3所示

Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

图2-3

由目录名称可知,此框架采用了一种MVC结构,用以对代码功能做区分。XxxPanel负责页面显示逻辑,XxxCtrl负责事件处理,未例没有给出明显的Model层,读者可以根据自身项目酌情添加。

继续查看框架代码,会在Logic/Game.lua中找到游戏的入口:Game.OnInitOK函数,见图2-4。

Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板

图2-4

 在这个函数中,有3个重要逻辑:

1、初始化View

2、初始化Ctrl

3、启动Ctrl

 1、初始化View

初始化View就是调用InitViewPanels这个函数,InitViewPanels函数用于加载View目录下定义的XxxPanel,在Game.lua的17行中可以看到定义。

function Game.InitViewPanels() for i = 1, #PanelNames do require ("View/"..tostring(PanelNames[i])) end end

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

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