做为程序员要懂得假设保持健康,对电脑时间太长非常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

项目记录26--unity-tolua框架 View03-UIManager.lua的更多相关文章

  1. Unity Project Wizard (最近打开的项目记录)

    最近打开工程列表 当用Unity打开过的项目越来越多之后,在最近打开项目记录框中就会变的很长,那么如何才能删除最近打开的记录呢? Unity4.x最近打开的工程记录 Unity5.x最近打开的工程记录 ...

  2. 项目记录25--unity-tolua框架 View02---BasePanel.lua

    还在,还在. ... . 每天晚上找点时间写点点,多了也不想学到底是什么心理啊. 写完看电影去. 今天写两个算超完毕了BaseUI.lua,UIManager.lua(完好中这个) local Bas ...

  3. Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介

    约定 还记得上版本的第二十四篇的约定嘛?现在出来履行啦~ 为什么要重制? 之前写的专栏都是按照心情写的,在最初的时候笔者什么都不懂,而且文章的发布是按照很随性的一个顺序.结果就是说,大家都看完了,都还 ...

  4. Unity 游戏框架:资源管理神器 ResKit

    此篇文章准备了将近两周的时间,写了改,改了删.之前有朋友反馈,上一个文章太冗长了,影响阅读体验,这一讲就走个精简路线.所以只要不是很重要的内容就都删减掉了. 文章分两个部分,第一部分是原理,第二部分是 ...

  5. Unity 游戏框架搭建 (六) 关于框架的一些好文和一些思考

      在进行项目架构阶段,游戏框架可以解决一部分问题.剩下的架构问题还需要根据不同的项目解决.总之游戏框架是游戏架构的一部分. 关于锤子和钉子:   最近又拿起了<代码大全>和<暗时间 ...

  6. 体验ToLua框架下热更新(Phpstudy)

    一.关于热更新的详细流程 首先我们需要需要将本机电脑作为服务器打开,这是第一步 1.1.1如何确定我们的电脑是作为服务器打开的. 我们打开一个浏览器在地址栏中输入127.0.0.1.或者是localh ...

  7. Unity 游戏框架搭建 (十六) v0.0.1 架构调整

    背景: 前段时间用Xamarin.OSX开发一些工具,遇到了两个问题. QFramework的大部分的类耦合了Unity的API,这样导致不能在其他CLR平台使用QFramework. QFramew ...

  8. Unity 游戏框架搭建 (十三) 无需继承的单例的模板

    之前的文章中介绍的Unity 游戏框架搭建 (二) 单例的模板和Unity 游戏框架搭建 (三) MonoBehaviour单例的模板有一些问题. 存在的问题: 只要继承了单例的模板就无法再继承其他的 ...

  9. Unity 游戏框架搭建 (十) QFramework v0.0.2小结

    从框架搭建系列的第一篇文章开始到现在有四个多月时间了,这段时间对自己来说有很多的收获,好多小伙伴和前辈不管是在评论区还是私下里给出的建议非常有参考性,在此先谢过各位. 说到是一篇小节,先列出框架的概要 ...

随机推荐

  1. ajax动态刷新下拉框

    动态post,避免直接给页面传输大量数据 /** * ajax通过商品刷新供应商 * by_kangyx * @throws IOException */ @RequestMapping(params ...

  2. Appium切换webview时候报chromedriver版本问题

    前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...

  3. mysql replication常见错误整理

    这篇文章旨在记录MySQL Replication的常见错误,包括自己工作中遇到的与网友在工作中遇到的,方面自己及别人以后进行查找.每个案例都是通过Last_IO_Errno/Last_IO_Erro ...

  4. php增加

    <?php$lname = $_POST['lname'];$name = $_POST['name'];$number = $_POST['number'];$dod = $_POST['do ...

  5. .NET重构(一):抽象工厂模式实现登录

    导读:一路艰辛,我也走到了重构.在重构之前,师傅让用经典三层(UI.BLL.DAL)敲了登录.用户的增删改查,共五条线.从开始对三层的朦胧,到五条线结束,终于对三层有了逻辑上清晰的理解.然后就画了几天 ...

  6. SoapUI offen used scripts

    [ Groovy Step ] //get properties from testCase, testSuite and project in groovy step def testCasePro ...

  7. 【Luogu】P3708Koishi的数字游戏(数论)

    题目链接 考虑f(i)=i%1+i%2+i%3+.....+i%n f(i+1)=(i+1)%1+(i+1)%2+......+(i+1)%n 其中不是i+1的因数的部分在f(i+1)的地方都加了1. ...

  8. 【Luogu】P1462通往奥格瑞玛的道路(二分答案+SPFA)

    题目链接 导致我WA十几遍的原因居然是最大值不够大……以后再也不相信memset(dis,127/3,sizeof(dis))了. 此题先将花费排序,然后二分最大花费,spfa判断解是否可行.spfa ...

  9. 【Luogu】P1593因子和(唯一分解定理,约数和公式)

    题目链接 首先介绍两个定理. 整数唯一分解定理:任意正整数都有且只有一种方式写出素数因子的乘积表达式. \(A=(p1k1 p2k2 ...... pnkn \) 求这些因子的代码如下 ;i*i< ...

  10. BZOJ 2337 [HNOI2011]XOR和路径 ——期望DP

    首先可以各位分开求和 定义$f(i)$表示从i到n的期望值,然后经过一些常识,发现$f(n)=1$的时候的转移,然后直接转移,也可以找到$f(n)=0$的转移. 然后高斯消元31次就可以了. #inc ...