Unity窗口的管理
来源:互联网 发布:斗鱼tv mac客户端 编辑:程序博客网 时间:2024/06/08 14:38
一般我的做法是 一个窗口身上挂一个类,那么这个类主要负责管理该窗口上所有的UI,那么这个类既然能管理子控件,那么肯定是已经得到了子控件
两种方法获取 子控件
1 在脚本中 public 定义一些变量 然后拖动赋值
2 通过Find查找方式
但是,有时候你会发现别人这样写,找到场景对象后,进行一层封装
using UnityEngine;using UnityEngine.UI;using System.Collections;using System.Reflection;using System;public class xuhaitaoWindow : MonoBehaviour { public class myButtonGroup { public Button Button01; public Button Button02; public Button Button03; } public class myTextGroup { public Text Text01; public Text Text02; public Text Text03; public Text Text04; } private myButtonGroup btnGroup=new myButtonGroup(); private myTextGroup txtGroup = new myTextGroup(); // Use this for initialization void Start () { InitializeComponent(btnGroup); InitializeComponent(txtGroup); btnGroup.Button01.GetComponent<Button>().onClick.AddListener(dianJi); } public void dianJi() { print("wo shi xu hai tao"); } public void InitializeComponent(object obj) { Type t = obj.GetType(); string child01Name = ""; foreach (Transform item in this.transform) { if (t.Name.Contains(item.name)) { child01Name = item.name; } } FieldInfo[] finfos = t.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly); foreach (FieldInfo finfo in finfos) { GameObject obje = GameObject.Find(this.name + "/" + child01Name + "/" + finfo.Name); if (obje == null) { throw new Exception("实例化组件失败 " + this.name + "/" + child01Name + "/" + finfo.Name + " 请检查改层级下的UI命名是否正确"); //return; } finfo.SetValue(obj, obje.GetComponent(finfo.FieldType)); } }}
其实 在一定命名规矩的保证下,结合查找,将对应的场景对象放入封装类对象中
个人不推荐下面这种找到某个场景对象后,再封装到一个大的对象中的做法
FR:海涛高软(QQ技术交流群:386476712)
1 0
- Unity窗口的管理
- Unity欢迎窗口的信息
- unity万能的提示窗口
- Unity Animator 窗口的控制
- unity万能的提示窗口
- unity的内存管理
- unity 的内存管理
- unity声音的管理
- CEGUI的窗口管理
- Unity 简单的特效管理
- Unity的Mono内存管理
- /LGC窗口管理/窗口管理器的分类
- unity 实现Game窗口的Stats
- 【Unity】Unity 5 Statistics 窗口
- Unity 管理www类访问的写法
- Unity管理Debug.log输出的Log
- Unity中游戏的声音管理
- Unity开发者的C#内存管理
- 以此纪念我荒废的8年
- apache实现按天记录日志
- git知识整理
- JDK 常用内置命令
- 2017算法课.00_(missingNumber)
- Unity窗口的管理
- 工作中兼容问题留档
- 子进程继承父进程中互斥锁的讨论
- 架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇
- 聚集索引和非聚集索引的区别
- 编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串。 但是要保证汉字不被截半个。
- C++,C 编译问题汇总(持续更新)
- Tram [最短路][spfa]
- android消息队列机制