[Unity热更新]tolua# & LuaFramework(十):扩展工具包

这个工具包有以下功能:

1.提供一个资源打包工具。因为LuaFramework默认对例子中的资源进行打包,不具有通用性,因此要有这样一个工具,详细的见系列二。

2.提供一个工具简化编写lua文件的步骤。按照LuaFramework的规定,如果要添加一个Panel,那么就要编写对应的Controller、View,以及修改三个框架自带的lua文件,比较繁琐,因此要有这样一个工具提高效率。


3.提供一个小型的UI框架。这个框架是针对热更新而设计的,提供c#和lua的实现,规范c#代码的编写。优点是对于一个Panel,其c#的实现与其lua的实现有比较多的相似,可以减小二次开发的时间,例如下面的:

using UnityEngine;
using System.Collections;

public class MainPanel : UIPanelBase {

    public UILabel hpLabel;
    public UILabel mpLabel;

    protected override void Awake()
    {
        base.Awake();
        UIPanelManager.Instance.CreatePanel(UIPanelName.MainPanel, OnCreate);
    }

    protected override void OnCreate(GameObject go)
    {
        base.OnCreate(go);

        hpLabel = transform.FindChild("HpLabel").GetComponent<UILabel>();
        mpLabel = transform.FindChild("MpLabel").GetComponent<UILabel>();

        UIEventListener.Get(transform.FindChild("Button1").gameObject).onClick = 
            delegate(GameObject a) {
                UIPanelManager.Instance.GetPanel(UIPanelName.FirstPanel).Open();
        };

        UIEventListener.Get(transform.FindChild("Button2").gameObject).onClick =
            delegate(GameObject a)
            {
                UIPanelManager.Instance.GetPanel(UIPanelName.ThirdPanel).Open();
            };
    }

}

require "Common/define"
require "Logic/UIPanelBase"

MainCtrl = UIPanelBase:New();
local gameObject;
local transform;
local tweener;

function MainCtrl.New()
	return MainCtrl;
end

function MainCtrl.Awake()
	panelMgr:CreatePanel('Main', MainCtrl.OnCreate);
end

function MainCtrl.OnCreate(obj)
	gameObject = obj;
    transform = obj.transform;
	MainCtrl.gameObject = obj;
    MainCtrl.transform = obj.transform;
	
	MainCtrl.hpLabel = transform:FindChild("HpLabel"):GetComponent('UILabel');
	MainCtrl.mpLabel = transform:FindChild("MpLabel"):GetComponent('UILabel');
	
	UIEventListener.Get(transform:FindChild("Button1").gameObject).onClick = MainCtrl.OpenFirstPanel;
	UIEventListener.Get(transform:FindChild("Button2").gameObject).onClick = MainCtrl.OpenThirdPanel;
	
	MainCtrl:Open();
end

function MainCtrl.OpenFirstPanel()
	CtrlManager.GetCtrl(CtrlNames.First):Open();
end

function MainCtrl.OpenThirdPanel()
	CtrlManager.GetCtrl(CtrlNames.Third):Open();
end

你也许会觉得,上面的不同之处挺多的,但是不要忘了我们可以创建lua模板文件,这样一来,当实现了c#版本后,就可以较快地实现lua版本。


扩展包的截图:


下载地址:

http://pan.baidu.com/s/1dEZhqpV


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值