zoukankan      html  css  js  c++  java
  • Unity 自身与父对象的Active状态

    ActiveSelf

     Unity 获得自身 Active 属性的时候可以用 gameObject.activeSelf 来获得,注意这是获取自身的 Active 属性

     假如该物体的父对象在层级面板上是关闭的状态,获取到的 ActiveSelf 属性仍然是 True

     那么如果想获得这个物体的父对象状态来表示他自己的状态时就需要用到 ActiveInHierarchy

    ActiveInHierarchy

     ActiveInHierarchy 是获取到父对象层级面板的状态

     如果没有父对象的话,则 ActiveSelf 和 ActiveInHierarchy 的值是相等的

    Test

     测试1:层级关系为1,单一父对象

     1     public GameObject Obj;
     2 
     3     void Update()
     4     {
     5         if (Input.GetKeyDown(KeyCode.Q))
     6         {
     7             Debug.Log("activeInHierarchy的属性为:" + Obj.activeInHierarchy);
     8         }
     9         if (Input.GetKeyDown(KeyCode.E))
    10         {
    11             Debug.Log("activeSelf的属性为:" + Obj.activeSelf);
    12         }
    13     }

     如图,将作为父对象的 Cube 对象关闭

     

     测试结果:

     

     测试2:层级关系大于1,多个父对象

     将 Cube1 设为 False,Cube4 设为 True

     

     测试结果:

     

     接着将 Cube1 设为 True,Cube4 设为False 进行测试:

     

     最后将所有父对象的 Cube 都设为 True 进行测试:

     

    结论

     只要目标对象的层级关系父对象中存在 False,则 ActiveInHierarchy 只能为 False

     只有目标对象的所有父对象都为 True 的情况下 ActiveInHierarchy 才会为 True

     而 ActiveSelf 的结果只与自身有关,与父对象无关

    *** |  以上内容仅为学习参考、学习笔记使用  | ***

  • 相关阅读:
    Java 8实战之读书笔记五:超越Java 8
    Quartz的简单使用
    Quartz实现数据库动态配置定时任务
    Java解析Groovy和Shell的代码
    Spring学习笔记(3)——快速入门
    linux的防火墙端口配置
    气泡提示 纯CSS
    解决LINUX下SQLPLUS时上下左右键乱码问题
    redhat Enterprise Linux 6 VNC安装
    使用mount命令挂载CDROM
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13353137.html
Copyright © 2011-2022 走看看