Unity Component.isActiveAndEnabled 确切含义解析

以下结果为测试结论。

isActiveInHierachy,就是等价于gameObject是否处于激活状态,与简单的理解相同。

isActiveAndEnabled,需要3个条件:

  1. gameObject的isActiveInHierachy为true
  2. enabled为true
  3. 正在或者已经调用OnEnable

所以:

  1. 在一个脚本的OnEnable中,isActiveAndEnabled永远是true
  2. 在一个脚本的OnDisable中,isActiveAndEnabled永远是false

测试例子:在场景中放置一个GameObject,下面放两个脚本,设置GameObject和脚本全部都是激活状态。在运行场景的过程中,在先调用OnEnable的脚本中,可以发现自己的isActiveAndEnabled是true,但是另一个脚本的isActiveAndEnabled是false。

所以:还没有调用OnEnable的脚本,虽然gameObject.isActiveInHierachy是true,而且enabled 是true,但是isActiveAndEnabled是false。

以下结果为测试结论。

猜你喜欢

转载自blog.csdn.net/lr_shadow/article/details/107568802