[Unity优化]RaycastTarget勾选过多的烦恼
来源:互联网 发布:淘宝快捷支付限额 编辑:程序博客网 时间:2024/05/21 19:34
本文转自雨松MOMO大大个人网站:http://www.xuanyusong.com/archives/4291,雨松MOMO 2017年02月12日 于 雨松MOMO程序研究院发表。
请点击链接查看原文,尊重楼主版权。
看过UGUI源码的朋友一定都知道,UI事件会在EventSystem在Update的Process触发。
UGUI会遍历屏幕中所有RaycastTarget是true的UI,接着就会发射线,并且排序找到玩家最先触发的那个UI,在抛出事件给逻辑层去响应。
团队多人在开发游戏界面,很多时候都是复制黏贴,比如上一个图片是需要响应RaycastTarget,然后ctrl+d以后复制出来的也就带了这个属性,很可能新复制出来的图片是不需要响应的,开发人员又没有取消勾选掉,这就出问题了。
所以RaycastTarget如果被勾选的过多的话, 效率必然会低。。这个问题其实困扰了我很久,我终于想了一个还算好的方法解决它。
把下面代码挂在游戏中的任意GameObject上,原理其实很简单就是绘制辅助线,当UI中RaycastTarget发生变化,SceneView中的蓝色辅助线也会刷新,还是挺方便的。
#if UNITY_EDITORusing UnityEngine;using System.Collections;using UnityEngine.UI;public class DebugUILine : MonoBehaviour {static Vector3[] fourCorners = new Vector3[4];void OnDrawGizmos(){foreach (MaskableGraphic g in GameObject.FindObjectsOfType<MaskableGraphic>()){if (g.raycastTarget){RectTransform rectTransform = g.transform as RectTransform;rectTransform.GetWorldCorners(fourCorners);Gizmos.color = Color.blue;for (int i = 0; i < 4; i++)Gizmos.DrawLine(fourCorners[i], fourCorners[(i + 1) % 4]); }}}}#endif如下图所示,这是之前游戏中的一个简单的界面。 在SceneView视图中,我并不知道那些勾选了RaycastTarget,以前的做法需要一个个的去找(这个太麻烦了)
如下图所示,加上上面的脚本后,可以在scene试图中直接看到,蓝色框表示的就是勾选过RaycastTarget的UI。
测试环境 unity5.3.5;unity5.5.2
Canvas的参数
UICamera相机的参数:
这个脚本无论是运行模式,还是编辑模式都可以看到蓝色的辅助线,的理论上90%的文字或者 非按钮的图片 都是不需要RaycastTarget的。
阅读全文
0 0
- [Unity优化]RaycastTarget勾选过多的烦恼
- UGUI之优化(1)-解决RaycastTarget勾选过多的烦恼
- UGUI研究院之有效解决RaycastTarget勾选过多的烦恼(二十三)
- UGUI研究院之有效解决RaycastTarget勾选过多的烦恼(二十三)
- Unity中使用串口的烦恼
- 过多if-else分支的优化
- 过多if-else分支的优化
- 过多if-else分支的优化
- 过多if-else分支的优化
- 过多if-else分支的优化
- Unity的内存优化
- Unity的优化功能
- Unity内存的优化
- Unity的内存优化
- openldap连接数过多的解决与性能优化
- java中过多if-else分支语句的优化方案
- 优化Image设置Tiled类型产生过多的三角形顶点
- 网站分析的烦恼连载(优化篇上)
- python MapReduce单词统计
- 脑电波实时数据收集——RDA—数据包定义
- 常见的几种矩阵分解方式
- 混合背包
- 中国国内采购平台大全
- [Unity优化]RaycastTarget勾选过多的烦恼
- 创业社交平台微链获经纬中国、如山资本等2800万元A轮及A+轮投资
- Spring Data Jpa 自带事务配置
- 免费抽取无人机:vivo年度旗舰Xplay5开启预约 3月16日上市
- 大数据看两会关键词“互联网+” 购物APP增幅超六成
- 超详解:快无边界vivo Xplay5如何做到全球最强智能手机?
- Xplay 5 和 三星 S7 的差距只剩防水了? | 产品辣评
- 【LibreOJ】#6000. 「网络流 24 题」搭配飞行员 二分图匹配
- 马化腾两会解读互联网+文化 落地在哪里?