LuaFrameWork学习----1

来源:互联网 发布:java进阶书籍推荐 编辑:程序博客网 时间:2024/06/06 00:30

现在的游戏都需要热更新,从现在开始学习lua的toLua框架来实现热跟新。
废话不说,俗话说得好磨刀不误砍柴工,要使用lua语言,就需要一个好的编辑器,现在网上常用的编辑器有一下几中:

  1. Subline3编辑器,就是向写text文本一样,只是有语法高亮和写过的代码提示

    网址:http://www.sublimetext.com/3(英文版),也可下载中文版
  2. LuaStudio:一种有断点,有智能提示,但是就是收费的,网上也要破解的

        百度盘:http://pan.baidu.com/s/1eRV4dyU 密码:29il
  3. 就是使用VS自带的插件BabeLua ,不过需要配置过程比较麻烦,但是相比Subline3有更多的提示

    百度盘:http://pan.baidu.com/s/1slMA1jR 密码:tfbm(支持VS2015)
  4. IntelliJ IDEA + EmmyLua,这种编辑器也是相对十分方便的,不过我用的不多

        提供一个链接使用教程:http://blog.csdn.net/david_dai_1108/article/details/74279111

    编辑器基本上也就是这几种了,其他的我也没用过。

言归正传:既然要使用ToLua做热更新,首先需要下载LuaFramework框架 https://github.com/jarjin/LuaFramework_UGUI(下载地址)

  1. 创建一个新的场景,创建一个空游戏对象,命名为GameObject,挂在Main脚本
    图片1

  2. 找到AppConst脚本,修改一下设置
    这里写图片描述

  3. 找到PanelManager,将UI面板的父节点修改为Canvas,因为框架自带的例子的父节点是GuiCamera,我的例子的父节点是画布,所以要根据自己的需求修改

    这里写图片描述

  4. 制作一个微信登录的界面,做成一个prefab,放在下面的文件夹中
    这里写图片描述

  5. 打开Packager脚本,找到HandleExampleBundle() 方法,打包资源
    这里写图片描述

  6. 将LuaFramework中的Lua文件夹添加到subLine3中,创建StartCtrl.lua

    require("View/StartPanel")--导入开始的view视图模块StartCtrl={}local this = StartCtrllocal transformlocal startPanelObjfunction StartCtrl.New()    log("构造了一个startCtrl对象")    return this;endfunction StartCtrl.Awake()    panelMgr:CreatePanel('Start',this.OnCreate);--调用C#的PanelManager中的CreatePanel方法,传入(面板的名字,【不带panel(自动添加)】,回调函数)endfunction StartCtrl.OnCreate(obj)--回调函数    startPanelObj=obj;    luaBehaviour=startPanelObj:GetComponent('LuaBehaviour')--因为在创建房间时候,自动挂在LuaBehaviour脚本    luaBehaviour:AddClick(StartPanel.weChatBtn,this.OnWeChatClick);--调用LuaBehaviour中的AddClick,添加监听事件参数(指定的按钮,回调)endfunction StartCtrl.OnWeChatClick()    StartPanel.messageText="你好我是高昂";end
  7. StartPanel.lua脚本

    StartPanel={}local this=StartPanellocal gameobjectlocal transformfunction StartPanel.Awake( obj )    gameobject=obj;    transform=obj.transform;endfunction StartPanel.Start()    this.weChatBtn=transform.find('WeChatBtn'):GetComponent('Button');    this.messageText=transform.find('Message/Text'):GetComponent('Text');endfunction StartPanel.OnDestroy()    log("开始面板view执行")end
原创粉丝点击