赞
踩
根对象(空物体) : UIManager类
——窗口 : UIXXXWindow :UIWindow类
————交互元素: UIEventListener类
在这里插入代码片 using System.Collections; using System.Collections.Generic; using UnityEngine; using Common; using System; namespace VR.UGUI.Framewrok { //namespace 域名.项目名称.模块 /// <summary> /// UI管理器:管理所有Window窗口 /// 功能: /// 1.管理所有窗口 /// 2.记录所有窗口 /// 3.隐藏所有窗口 /// 2.提供查找窗口的方法 /// </summary> /// 继承单例类 public class UIManager:MonoSingleton<UIManager> { //字典<Key是窗口的名称,Value是窗口对象的引用> private Dictionary<string,UIWindow> uiWindowDic; //重写基类的初始化 public override void Init() { base.Init(); //将所有窗口对象都记录到UIWindow类型的数组中 uiWindowDic= new Dictionary<string,UIWindow>(); UIWindow[] uiWindowArr = FindObjectsOfType<UIWindow>(); for (int i = 0; i < uiWindowArr.Length; i++) { //隐藏窗口 uiWindowArr[i].SetVisible(false); //记录窗口 AddWindow(uiWindowArr[i]); } } /// <summary> /// 添加新窗口,动态创建窗口 /// </summary> /// <param name="window">窗口对象</param> public void AddWindow(UIWindow window) { uiWindowDic.Add(window.GetType().Name, window); } /// <summary> /// 根据窗口的类型查找窗口 /// </summary> /// <typeparam name="T">需要查找的窗口类型</typeparam> /// <returns>指定窗口的对象</returns> public T GetWindow<T>() where T: class { //类名 string key = typeof(T).Name; //没有此窗口类型对象返回空 if (!uiWindowDic.ContainsKey(key)) { return null; } return uiWindowDic[key] as T; } } }
在这里插入代码片 using System.Collections; using System.Collections.Generic; using UnityEngine; using Common; using System; namespace VR.UGUI.Framewrok { //namespace 域名.项目名称.模块 /// <summary> /// UI管理器:管理所有Window窗口 /// 功能: /// 1.管理所有窗口 /// 2.记录所有窗口 /// 3.隐藏所有窗口 /// 2.提供查找窗口的方法 /// </summary> /// 继承单例类 public class UIManager:MonoSingleton<UIManager> { //字典<Key是窗口的名称,Value是窗口对象的引用> private Dictionary<string,UIWindow> uiWindowDic; //重写基类的初始化 public override void Init() { base.Init(); //将所有窗口对象都记录到UIWindow类型的数组中 uiWindowDic= new Dictionary<string,UIWindow>(); UIWindow[] uiWindowArr = FindObjectsOfType<UIWindow>(); for (int i = 0; i < uiWindowArr.Length; i++) { //隐藏窗口 uiWindowArr[i].SetVisible(false); //记录窗口 AddWindow(uiWindowArr[i]); } } /// <summary> /// 添加新窗口,动态创建窗口 /// </summary> /// <param name="window">窗口对象</param> public void AddWindow(UIWindow window) { uiWindowDic.Add(window.GetType().Name, window); } /// <summary> /// 根据窗口的类型查找窗口 /// </summary> /// <typeparam name="T">需要查找的窗口类型</typeparam> /// <returns>指定窗口的对象</returns> public T GetWindow<T>() where T: class { //类名 string key = typeof(T).Name; //没有此窗口类型对象返回空 if (!uiWindowDic.ContainsKey(key)) { return null; } return uiWindowDic[key] as T; } } }
在这里插入代码片 using System.Collections; using System.Collections.Generic; using UnityEngine; using Common; using System; namespace VR.UGUI.Framewrok { //namespace 域名.项目名称.模块 /// <summary> /// UI管理器:管理所有Window窗口 /// 功能: /// 1.管理所有窗口 /// 2.记录所有窗口 /// 3.隐藏所有窗口 /// 2.提供查找窗口的方法 /// </summary> /// 继承单例类 public class UIManager:MonoSingleton<UIManager> { //字典<Key是窗口的名称,Value是窗口对象的引用> private Dictionary<string,UIWindow> uiWindowDic; //重写基类的初始化 public override void Init() { base.Init(); //将所有窗口对象都记录到UIWindow类型的数组中 uiWindowDic= new Dictionary<string,UIWindow>(); UIWindow[] uiWindowArr = FindObjectsOfType<UIWindow>(); for (int i = 0; i < uiWindowArr.Length; i++) { //隐藏窗口 uiWindowArr[i].SetVisible(false); //记录窗口 AddWindow(uiWindowArr[i]); } } /// <summary> /// 添加新窗口,动态创建窗口 /// </summary> /// <param name="window">窗口对象</param> public void AddWindow(UIWindow window) { uiWindowDic.Add(window.GetType().Name, window); } /// <summary> /// 根据窗口的类型查找窗口 /// </summary> /// <typeparam name="T">需要查找的窗口类型</typeparam> /// <returns>指定窗口的对象</returns> public T GetWindow<T>() where T: class { //类名 string key = typeof(T).Name; //没有此窗口类型对象返回空 if (!uiWindowDic.ContainsKey(key)) { return null; } return uiWindowDic[key] as T; } } }
在这里插入代码片 using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Common { //namespace 域名.项目名称.模块 /// <summary> /// 变换组件助手类 /// </summary> public static class TransformHelper { /// <summary> /// 未知层级,查找后代指定名称的变换组件 /// </summary> /// <param name="currentTf">当前变换组件</param> /// <param name="childName">后代物体的名称</param> /// <returns></returns> /// this 前缀修饰:将静态方法转为扩展方法 public static Transform FindChildByName( this Transform currentTf,string childName) { //递归:方法内部有调用自己的过程 //1.通过子物体名称在子物体中查找变换组件 Transform childTF = currentTf.Find(childName); if (childTF!=null) { return childTF; } for (int i = 0; i < currentTf.childCount; i++) { //2.将任务交给子物体,子物体又查找子物体的子物体 childTF = FindChildByName(currentTf.GetChild(i), childName); if (childTF!=null) { return childTF; } } return null; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。