项目记录26--unity-tolua框架 View03-UIManager.lua
2018-03-14 21:07
417 查看
做为程序员要懂得假设保持健康,对电脑时间太长非常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
一个字“疼”!!!!
废话不多少,把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
相关文章推荐
- 项目记录26--unity-tolua框架 View03-UIManager.lua
- 项目记录24--unity-tolua框架 View01---UIBase.lua
- 项目记录29--unity-tolua框架 c#导出定时器lua
- 项目记录23--unity-tolua框架MediatorManager
- 项目记录25--unity-tolua框架 View02---BasePanel.lua
- 项目记录25--unity-tolua框架 View02---BasePanel.lua
- 项目记录23--unity-tolua框架MediatorManager
- 项目记录28--unity-tolua框架 lua使用协程
- 项目记录36--tolua 框架真机成功热跟新搞定 + 简单池子PrefabsPool.lua
- 项目记录22-- tolua基于lua框架事件派发
- 项目记录22-- tolua基于lua框架事件派发
- 项目记录03--客unity,服erlang--框架net
- 项目记录27--unity-tolua框架 网络端+protobuf
- 项目记录30--unity-tolua框架 回顾之前Dotween导入
- 项目记录33--tolua 框架 回顾架构和重构事件派发LNotice
- 项目记录20-- 原来c#框架mediator改lua--01
- 项目记录21-- 原来c#框架mediator改lua--02
- Unity 基于Lua UI简单框架
- Unity实战笔记_5.简单的UI框架RescorceManager
- 项目记录01--客unity,服erlang--框架net