zoukankan      html  css  js  c++  java
  • Unity UGUI

    RaycastTarget:是否标记为光线投射目标

    :勾选表示鼠标点击到该物体后不再穿透到下面的物体

                              :取消勾选则穿透该物体

      在拼UI的过程中往往会添加很多图片和文字,但是很容易会忽略的其中一点就是把无用的RaycastTarget去掉,因为开启此选项,组件虽然不需要接受射线,但是它依然在工作且消耗性能。

     

      RaycastTarget 如果被勾选的过多的话, 效率必然会低;编辑状态下,便捷的方式查看UI交互包含 RayCastTarget 的UI元素,快速定位勾选取消不必要的UI交互,从而提高效率。

    方法具体如下:

      在场景中添加两个 Image 和 一个 Button UI 元素,其中取消一个 Image 的Raycast Target

       创建相关脚本,脚本的代码和代码说明如下:

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 using UnityEngine.UI;
     5 
     6 public class RaycastTargetOrientation : MonoBehaviour
     7 {
     8     // 定义一个静态变量保存UI四个角点位置信息
     9     private static Vector3[] UIFourCorners = new Vector3[4];
    10 
    11     private void OnDrawGizmos()
    12     {
    13         // 获取所有 UI元素
    14         MaskableGraphic[] maskableGraphics = GameObject.FindObjectsOfType<MaskableGraphic>();
    15         // 遍历所有元素
    16         foreach (MaskableGraphic mg in maskableGraphics)
    17         {
    18             // 如果元素勾选 raycastTarget,则进行划线显示
    19             if (mg.raycastTarget == true)
    20             {
    21                 RectTransform rect = mg.transform as RectTransform;
    22                 rect.GetWorldCorners(UIFourCorners);
    23                 Gizmos.color = Color.red;
    24 
    25                 for (int i = 0; i < 4; i++)
    26                 {
    27                     Gizmos.DrawLine(UIFourCorners[i], UIFourCorners[(i + 1) % 4]);
    28                 }
    29             }
    30         }
    31     }
    32 
    33 }

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

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

  • 相关阅读:
    Fragment 总结
    Varnish缓存服务器的搭建配置手册
    关于页面缓存服务器的研究报告
    基于Html5的移动端开发框架的研究
    C#的Process类的一些用法
    c#中进程的使用
    C#反射(转载)
    进制的转换 以及十进制转换成x进制的代码
    算法及其复杂度
    cocos总结
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/12888249.html
Copyright © 2011-2022 走看看