201710032350->unity中ui窗体基本生命周期
来源:互联网 发布:点对点视频软件 编辑:程序博客网 时间:2024/06/07 00:08
目的:根据构建窗体时搭载的基本数据生成窗体
执行窗体的初始化,进入和刷新
关键点
1.初始化
2.进入
3.刷新
4.退出隐藏
详细代码
public class AppBasePages : IOnFormUI
{
protected AppBasePages() { }
protected AppBasePages(UIType type, UIMode mode, string path = "")
{
this.type = type;
this.mode = mode;
this.path = path;
}
public void Show()
{
if (this.CacheGameObject == null && this.path.IsNonNullOrEmpty())
{
CreateUI();
}
OnEnter();
OnRefresh();
AdjustDeep();
CheakPageNodes(this);
}
private void AdjustDeep()
{
UIPanel[] panels = CacheTransform.TryGetChildComponent<UIPanel>(true);
Array.ForEach(panels, p =>
{
p.depth = p.depth - panels[0].depth + UIDeep;
});
panels[0].depth = UIDeep;
UIDeep += 1;
}
private Transform SetUIParent()
{
switch (type)
{
case UIType.Normal: return AppBootStrap.Instance.NormalRoot;
case UIType.PopUp: return AppBootStrap.Instance.PopupRoot;
}
return null;
}
private void CreateUI()
{
this.CacheGameObject = GameObject.Instantiate(Resources.Load(path), SetUIParent()) as GameObject;
this.CacheTransform = this.CacheGameObject.transform;
OnInitUI();
}
public void Close()
{
CacheGameObject.SetActiveSafe(false);
content = null;
OnExit();
}
public virtual void OnEnter()
{
CacheGameObject.SetVisible(true);
}
public virtual void OnRefresh()
{
CacheGameObject.SetActiveSafe(true);
}
public virtual void OnExit() { }
public virtual void OnInitUI() { }
private UIType type;
private UIMode mode;
private string path;
protected object content;
protected GameObject CacheGameObject;
protected Transform CacheTransform;
}
- 201710032350->unity中ui窗体基本生命周期
- 201710032340->unity中ui基本数据
- Unity中脚本的生命周期
- Unity中Monobehaviour的生命周期
- Unity中实现UI跟随
- VR中Unity UI系统
- Unity游戏UI框架(三):窗体的层级管理
- Unity游戏UI框架(四):模态窗体管理
- unity脚本中方法的生命周期
- Unity生命周期
- Unity生命周期
- Unity 生命周期
- 【Unity编程】 Component 组件脚本及其基本生命周期
- Unity中简单 UI 管理类 - UIManager
- 在 Unity 中怎样创建 UI
- unity中解决UI穿透问题
- Unity中实现UI序列帧动画
- Unity中VIVE弹出UI的创建
- LeetCode笔记 -- LongestSubStringLength
- 工厂方法(factory-method)模式
- IARSTM8 "unable to allocate space for sections "问题解决与改良
- Springboot学习笔记(四)
- 给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个字符。
- 201710032350->unity中ui窗体基本生命周期
- 浅谈 JavaScript array.sort(compare()) 实现原理.
- html基本概念
- RCNN学习笔记(1)-RCNN-Rich feature hierarchies for accurate object detection and semantic segmentation论文
- 一个alpha量化的开源项目--Signal_Report_Platform(单因子测试报告)
- 使用HTML和CSS写登录界面
- Spring入门(Schema-based AOP其四)
- 自然数n的数列 字典排序:求给定排列的下一个排列
- 10月3日 c语言 输入4*5矩阵