项目记录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
项目记录26--unity-tolua框架 View03-UIManager.lua的更多相关文章
- Unity Project Wizard (最近打开的项目记录)
最近打开工程列表 当用Unity打开过的项目越来越多之后,在最近打开项目记录框中就会变的很长,那么如何才能删除最近打开的记录呢? Unity4.x最近打开的工程记录 Unity5.x最近打开的工程记录 ...
- 项目记录25--unity-tolua框架 View02---BasePanel.lua
还在,还在. ... . 每天晚上找点时间写点点,多了也不想学到底是什么心理啊. 写完看电影去. 今天写两个算超完毕了BaseUI.lua,UIManager.lua(完好中这个) local Bas ...
- Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介
约定 还记得上版本的第二十四篇的约定嘛?现在出来履行啦~ 为什么要重制? 之前写的专栏都是按照心情写的,在最初的时候笔者什么都不懂,而且文章的发布是按照很随性的一个顺序.结果就是说,大家都看完了,都还 ...
- Unity 游戏框架:资源管理神器 ResKit
此篇文章准备了将近两周的时间,写了改,改了删.之前有朋友反馈,上一个文章太冗长了,影响阅读体验,这一讲就走个精简路线.所以只要不是很重要的内容就都删减掉了. 文章分两个部分,第一部分是原理,第二部分是 ...
- Unity 游戏框架搭建 (六) 关于框架的一些好文和一些思考
在进行项目架构阶段,游戏框架可以解决一部分问题.剩下的架构问题还需要根据不同的项目解决.总之游戏框架是游戏架构的一部分. 关于锤子和钉子: 最近又拿起了<代码大全>和<暗时间 ...
- 体验ToLua框架下热更新(Phpstudy)
一.关于热更新的详细流程 首先我们需要需要将本机电脑作为服务器打开,这是第一步 1.1.1如何确定我们的电脑是作为服务器打开的. 我们打开一个浏览器在地址栏中输入127.0.0.1.或者是localh ...
- Unity 游戏框架搭建 (十六) v0.0.1 架构调整
背景: 前段时间用Xamarin.OSX开发一些工具,遇到了两个问题. QFramework的大部分的类耦合了Unity的API,这样导致不能在其他CLR平台使用QFramework. QFramew ...
- Unity 游戏框架搭建 (十三) 无需继承的单例的模板
之前的文章中介绍的Unity 游戏框架搭建 (二) 单例的模板和Unity 游戏框架搭建 (三) MonoBehaviour单例的模板有一些问题. 存在的问题: 只要继承了单例的模板就无法再继承其他的 ...
- Unity 游戏框架搭建 (十) QFramework v0.0.2小结
从框架搭建系列的第一篇文章开始到现在有四个多月时间了,这段时间对自己来说有很多的收获,好多小伙伴和前辈不管是在评论区还是私下里给出的建议非常有参考性,在此先谢过各位. 说到是一篇小节,先列出框架的概要 ...
随机推荐
- document文档碎片
var arrText = ["1","2","3","4","5","6",& ...
- 四丶人生苦短,我用python【第四篇】
1 基本数据类型 数字 int 字符串 str 布尔值 bool 列表 list 元组 tuple 字典 dict >>>type( ...
- Wordpress无法上传图片
当在自己新搭建的个人网站添加文章的时候,我遇到了wordpress最普遍的第一个问题——无法上传图片. 每次图片上传完成之后跳出如上图无法建立目录的警告,根据提示首先确定是否有修改文件的权限通 ...
- 论文《Piexel Recurrent Nerual Network》总结
论文<Piexel Recurrent Nerual Network>总结 论文:<Pixel Recurrent Nerual Network> 时间:2016 作者:Aar ...
- C# 方法冒号this的用法
public Class1(string host, int port, string password = null):this() { this.Host=host; this.Port=port ...
- TMOS_Order_of_Operations_v0.1
- [luoguP3668] [USACO17OPEN]Modern Art 2 现代艺术2(栈)
传送门 还是一个字——栈 然后加一大堆特判 至少我是这么做的 我的代码 #include <cstdio> #include <iostream> #define N 1000 ...
- 刷题总结——学姐的逛街计划(vijos1891费用流)
题目: doc 最近太忙了, 每天都有课. 这不怕, doc 可以请假不去上课.偏偏学校又有规定, 任意连续 n 天中, 不得请假超过 k 天. doc 很忧伤, 因为他还要陪学姐去逛街呢. 后来, ...
- 关于代码调试de那些事
原文出处:http://www.wklken.me/posts/2014/11/23/how-to-debug.html 关于代码调试de那些事 1.你得明白你在做什么, 保持清醒 2.想清楚了再写代 ...
- python3.6安装遇到的问题
Ubuntu16.04版本最新的Python 3.x版本3.5 . 可以从源代码执行安装最新稳定版本3.6. 要安装Python 3.6 ,请运行以下命令: # wget https://www.py ...