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 的结果只与自身有关,与父对象无关

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

  • 相关阅读:
    Ajax原生XHR对象
    node-sass报错解决方法
    AngularJS中的表单验证
    javaScirpt事件详解-原生事件基础(一)
    jQuery Ajax总结
    Ruby 方法
    JS中常遇到的浏览器兼容问题和解决方法
    History对象
    转码与解码
    Location对象
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13353137.html
Copyright © 2011-2022 走看看