zoukankan      html  css  js  c++  java
  • 项目记录26--unity-tolua框架 View03-UIManager.lua

    做为程序员要懂得假设保持健康,对电脑时间太长非常easy眼花,得脖子病,腰都疼,这星期六日组团到康宁去了,哈哈。

    一个字“疼”!!!!

    废话不多少,把UIManager.lua个搞出来了。

    事实上非常简单,没有做什么二级界面。三级界面的想法如今,show就在最上层,基本怎么用看之前的

    function BasePanel:Show()
    BasePanel.super.Show(self)
    UIManager:Instance():AddPanel(self)
    self._uiTransform:SetAsLastSibling() --设置最前
    end

    ,手机游戏非常少说多层界面,起码休闲游戏我没看到过(或许自己孤陋寡闻)。临时这个Manager仅仅做简单的add,remove操作,以后能够依据自己的须要改,比方保存下上个Panel等,也能够做多级界面,起码我不须要。



    UIManager = class("UIManager")
    --构造函数
    function UIManager:ctor( )
    self._uiRoot = UnityEngine.GameObject.Find("UI_ROOT")
    if self._uiRoot == nil then
    local tmp = UnityEngine.Resources.Load(PREFABS_PATH.."UI_ROOT")
    self._uiRoot = UnityEngine.Object.Instantiate(tmp) 
    end
    end
    --单例
    function UIManager:Instance(  )
    if self._Instance == nil then
    self._Instance = self.new()
    end
    return self._Instance
    end
    --加入panel
    function UIManager:AddPanel(panel)
    if type(panel) ~= "table" or panel == nil then 
    error("UIManager AddPanel error no panel",2)
    return false
    end
    if self._allPanels == nil then
    self._allPanels = {}
    end
    if self._allPanels[panel._panelName] == nil then
    self._allPanels[panel._panelName] = panel
    return true
    else
    return false
    end 
    end


    --移除panel
    function UIManager:RemovePanel( panel )
    if  type(panel)  ~= "table" or panel == nil then 
    error("UIManager RemovePanel error no panel",2)
    return false
    end
    if self._allPanels[panel._panelName] ~= nil then
    self._allPanels[panel._panelName] = nil
    return true
    end
    return false
    end


    --移除全部面板
    function UIManager:RemoveAllPanel()
    if self._allPanels ~= nil then
    local keys = table.keys(self._allPanels)
    for i,v in ipairs(keys) do
    v:Close() --先调用面板close
    end
    keys = nil
    self._allPanels = nil
    end
    end


    --销毁
    function UIManager:OnDestroy(  )
    self:RemoveAllPanel()
    self._Instance = nil
    self._uiRoot = nil
    end




    return UIManager

  • 相关阅读:
    超好看的UI配色网站汇总~
    JS获取非行内样式
    最近看到的一些不错前端面试题目
    指令
    $filter $watch
    学习学习学习
    Mongoose by时间查询
    AngularJs 学习 笔记 4 foreach
    AngularJs 学习 笔记 3
    AngularJs 学习 笔记 2
  • 原文地址:https://www.cnblogs.com/llguanli/p/8570136.html
Copyright © 2011-2022 走看看