zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    I
    D
    K
    G
    J
    Doom HDU
    Mountaineers Gym
    华南理工大学“三七互娱杯”程序设计竞赛(重现赛)( HRY and array 高精度除法模板)
    Corn Fields POJ
    linux如何安装缺失依赖
  • 原文地址:https://www.cnblogs.com/unitysir/p/13896820.html
Copyright © 2011-2022 走看看