NewStart(一)—— BaseWindow
来源:互联网 发布:imgur知乎 编辑:程序博客网 时间:2024/05/22 10:48
BaseWindow.cs
所有window类的基类
using UnityEngine;using System.Collections;using System.Collections.Generic;//所有window的基类public abstract class BaseWindow{ protected Transform mRoot; protected EScenesType mScenesType; //场景类型 protected string mResName; //资源名 protected bool mResident; //是否常驻 protected bool mVisible = false; //是否可见 //类对象初始化 public abstract void Init (); //类对象释放 public abstract void Release (); //窗口控制初始化 protected abstract void InitWidget (); //窗口控件释放 protected abstract void ReleaseWidget (); //游戏事件注册 protected abstract void OnAddListener (); //游戏事件注销 protected abstract void OnRemoveListener(); //显示初始化 public abstract void OnEnable (); //隐藏处理 public abstract void OnDisable (); //每帧更新 public virtual void Update(float deltaTime) { } //取得当前场景类型 public EScenesType GetSceneType() { return mScenesType; } //是否已打开 public bool IsVisible() { return mVisible; } //是否常驻 public bool IsResident() { return mResident; } //显示 public void Show() { if (mRoot == null) { //加载UI资源 if (Create()) { InitWidget (); } } if (mRoot && mRoot.gameObject.activeSelf == false) { //前面创建的时候设置成了false,这里设置成true mRoot.gameObject.SetActive (true); mVisible = true; OnEnable (); OnAddListener (); } } //隐藏 public void Hide() { if (mRoot && mRoot.gameObject.activeSelf == true) { OnRemoveListener (); OnDisable (); if (mResident) { mRoot.gameObject.SetActive (false); } else { ReleaseWidget (); Destroy (); } } mVisible = false; } //预加载 public void PreLoad() { if (mRoot == null) { if (Create()) { InitWidget (); } } } //延时删除 public void DelayDestroy() { if (mRoot) { ReleaseWidget (); Destroy (); } } //创建窗体 private bool Create() { if (mRoot) { Debug.LogError ("Window Create Error Exist !!!"); return false; } if (mResName == null || mResName == "") { Debug.LogError("Window Create Error ResName is empty!"); return false; } if (GameMethod.GetUiCamera.transform == null) { Debug.LogError ("Window Create Error GetUiCamera is empty ! WindowName = " + mResName); return false; } //加载UI资源 GameObject obj = LoadUIResource.LoadRes (GameMethod.GetUICamera.transform, mResName); if (obj == null) { Debug.LogError ("Window Create Error LoadRes WindowName = " + mResName); return false; } mRoot = obj.transform; mRoot.gameObject.SetActive (false); return true; } //销毁窗体 protected void Destroy() { if (mRoot) { LoadUIResource.DestroyLoad (mRoot.gameObject); mRoot = null; } } //取得根节点 public Transform GetRoot() { return mRoot; }}
阅读全文
0 0
- NewStart(一)—— BaseWindow
- NewStart(二)—— LoadUIResource
- NewStart(三)—— LoginWindow
- NewStart
- Unity3D 大型游戏 最后一站 源码 部分重点 GameView-BaseWindow(16)
- BaseWindow简单windows窗口实例
- NewStart,振奋起来吧,,少年
- Newstart中兴Linux系统更改启动级别
- JavaScript FAQ(一)—— 常见问题(一)
- 设计一门脚本语言——(一)构思
- 【java】java面试(一)——每日一题
- Linux私房菜笔记一—基本命令(一)
- Head First HTML5 Programming—每天一小步-(一)
- 数据结构—栈(一)
- FMDB(一)— 简介
- 知识—杂(一)
- CUDA(一)—基础知识
- 数据库—mysql(一)
- 高数 01.[01-07]02习题课
- C语言——0-1背包问题
- 使用crontab,让linux定时执行shell脚本
- Git
- Linux C 网络编程
- NewStart(一)—— BaseWindow
- H5混合开发二维码扫描以及调用本地摄像头
- java编程中spring boot 使用spring.profiles.active来分区配置
- 使用 GROUP BY 的 WITH ROLLUP
- Java中关于定时自动任务的实现
- RTLAB异步通信---客户端代码
- golang进阶(七)——go语言的几种测试方法
- unity开发: socket网络连接
- CentOS 6.6源码安装Python 2.7