• Unity热更新05-XLua实战-01


    --只要是一个新的对象(面板)我们那就新建一张表
    MainPanel = {}
    
    --不是必须写 因为lua的特性 不存在声明变量的概念
    --这样写的目的 是当别人看这个lua代码时  知道这个表(对象)有什么变量很重要
    --关联的面板对象
    MainPanel.panelObj = nil
    --对应的面板控件
    MainPanel.btnRole = nil
    MainPanel.btnSkill = nil
    
    --需要做 实例化面板对象
    --为这个面板 处理对应的逻辑 比如按钮点击等等
    
    --初始化该面板 实例化对象 控件事件监听
    function MainPanel:Init()
        --面板对象没有实例化过 才去实例化处理
        if self.panelObj == nil then
            --1.实例化面板对象 ABMgr + 设置父对象
            self.panelObj = ABMgr:LoadRes("ui", "MainPanel", typeof(GameObject))
            self.panelObj.transform:SetParent(Canvas, false)
            --2.找到对应控件 
            --找到子对象  再找到身上挂在的 想要的脚本
            self.btnRole = self.panelObj.transform:Find("btnRole"):GetComponent(typeof(Button))
            print(self.btnRole)
            --3.为控件加上事件监听  进行点击等等的逻辑处理
            --如果直接.传入自己的函数 那么在函数内部 没有办法用self获取内容
            --self.btnRole.onClick:AddListener(self.BtnRoleClick)
            self.btnRole.onClick:AddListener(function()
                self:BtnRoleClick()
            end)
        end
    end
    
    function MainPanel:ShowMe()
        self:Init()
        self.panelObj:SetActive(true)
    end
    
    function MainPanel:HideMe()
        self.panelObj:SetActive(false)
    end
    
    function MainPanel:BtnRoleClick()
        --print(123123)
        --print(self.panelObj)
        --等我们写了背包面板 
        --在这显示我们的 背包面板
        BagPanel:ShowMe()
    end
    
  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/unitysir/p/13896820.html
Copyright © 2020-2023  润新知