u3d 设计技巧 之UI 避免Find
来源:互联网 发布:java 服务器 编辑:程序博客网 时间:2024/05/21 07:15
我们都知道了,Find ** ()函数是很消耗性能的,所以不被推荐使用;
对于大型的游戏,UI复杂,加上设计上的不合理等问题(parent-child层级问题),很多时候就会被紧张的工期打乱自己的想法。
像下面的例子:
要避免Find,那就使用GetComponent 来获取脚本。 脚本中就引用这想要的GameObject,
所以在差不多的层级上就要有这个脚本专门做这件事(不是必须的)
我们要得到一个下面的对象,就先得到 引用他的脚本所在的对象,然后在GetComponent 来获取脚本,最后我们就可以访问了。
脚本引用GameObject 就是在Inspector上赋值。
这种方法,对 动态创建UI对象预制体,也是没有问题的。
在游戏设计中,还有一个问题,就是UI是动态创建的,那么对UI的事件触发,我们是希望被其他的类接受并触发,这里就有问题了,因为我们并不能像Hierarchy中的对象一样,简单的拖拽进行赋值了,那怎么办呢?
像NGUI 中提供的:
EventDelegate.Set(
_UICardSetBoard.transform.FindChild("Button").GetComponent<UIButton>().onClick,
OnCloseCardSet);
但是有的时候我们也要考虑这样的设计是不是最好的。
总之,UI就是要多思考的东西,从层级设计上开始。
1 2
- u3d 设计技巧 之UI 避免Find
- JavaME UI设计之资源优化技巧
- u3d之按钮UI的创建
- Android UI设计技巧
- Android UI设计技巧
- Android UI设计技巧
- UI设计技巧
- Android UI设计技巧
- Android UI 设计技巧
- Android UI设计技巧
- Android UI设计技巧
- Android UI设计技巧
- Android UI设计技巧
- Android UI设计技巧
- Android UI设计技巧
- Android UI设计技巧
- Android UI 设计技巧
- Android UI设计技巧
- 【剑指Offer学习】【面试题4 : 替换空格】
- collectionView的Item偶尔会跑到屏幕外面(已解决)
- Caffe1——Mnist数据集创建lmdb或leveldb类型的数据
- css盒子绝对定位,相对定位,固定定位
- VS工具的打包和部署
- u3d 设计技巧 之UI 避免Find
- JSP中的:request.getScheme()+"://"+request.getServerName()+":"+request.getServer
- uvalive 3905 扫描线:求包含区间最多的点
- android studio 问题
- HttpClient
- oracle flashback 知识点
- 【剑指Offer学习】【面试题5 : 从尾到头打印链表】
- 单例模式
- 获取制定目录下所有dll和exe的MD5字符串