简介: 在根据脚本物体是否处于激活状态来进行组件在队列中的处理,然后发现了知识忙点,activeInHierarchy。
unity版本: 2022.3.14f1c1
管线: URP
奇葩问题
我的组件挂载在很深的子节点上,本来是计划通过获取组件的是否激活来做一些处理,本意是如果父级物体已经被 disActive 了,那么这个组件应该也是未激活的,然而~~~~
情景重现
我们假设有两个物体 ObjectA 和 ObjectB,A是B的父级,ObjectB上挂载了一个组件 ComB。
所有物体和组件默认都处于激活状态。
我们直接DisActive ObjectA。然后获取 ComB 的enable,我们会得到 true, 这明显不对,我们再获取 ObjectB的active 状态,还是 true,依然不对。
解决方式
向同事请教,还有一个属性 ObjectB.activeInHierarchy,此属性可以得到物体最终的激活状态。