手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Unity GUI 之定位RaycastTarget取消不必要交互

时间:2024-10-12 21:49:15

1、打开Unity,新建一个工程,具体如下图

Unity GUI 之定位RaycastTarget取消不必要交互

2、在场景中添加两个 Image 和 一个 Button UI 元素,,其中取消一个 Image 的Raycast Target,具体如下图

Unity GUI 之定位RaycastTarget取消不必要交互
Unity GUI 之定位RaycastTarget取消不必要交互

3、在工程中新建一个脚本,并双击打开,具体如下图

Unity GUI 之定位RaycastTarget取消不必要交互

4、脚本的具体代码和代码说明如下图

Unity GUI 之定位RaycastTarget取消不必要交互

5、脚本的具体内容如下:using UnityEngine挢旗扦渌;using UnityEngine.UI;public class RaycastTargetOrientation : MonoBehaviour { // 定义一个静态变量保存UI四个角点位置信息 private static Vector3[] UIFourCorners = new Vector3[4]; private void OnDrawGizmos() { // 获取所有 UI元素 MaskableGraphic[] maskableGraphics = GameObject.FindObjectsOfType<MaskableGraphic>(); // 遍历所有元素 foreach (MaskableGraphic mg in maskableGraphics) { // 如果元素勾选 raycastTarget,则进行划线显示 if (mg.raycastTarget == true) { RectTransform rect = mg.transform as RectTransform; rect.GetWorldCorners(UIFourCorners); Gizmos.color = Color.red; for (int i = 0; i < 4; i++) { Gizmos.DrawLine(UIFourCorners[i], UIFourCorners[(i + 1) % 4]); } } } }}

6、脚本编译正确,回到Unity,在场景中添加一个 GameObject,并挂载上脚本,在Scene窗口即可看到勾选 Raycast Target的UI元素被红框标记,具体如下图

Unity GUI 之定位RaycastTarget取消不必要交互
Unity GUI 之定位RaycastTarget取消不必要交互

7、再次取消另一个不必要有交互的 Image 的 Raycast Target,在Scene窗口即可看到她的UI 红框消失了,具体如下图

Unity GUI 之定位RaycastTarget取消不必要交互
Unity GUI 之定位RaycastTarget取消不必要交互
© 手抄报圈