一个物体可以被标记为非活动暂时不在现场。这可以使用它activeself财产从一个脚本或在检查激活复选框
一个游戏对象的激活复选框 禁用父对象的影响当一个父对象失活,失活也覆盖activeself设置所有的子对象,所以从父降为不活动的整体结构。请注意,这并不变化的价值activeself在子对象的属性,所以他们会回到原来的状态,一旦父母被激活。这意味着你不能确定是否一个孩子的对象是目前活跃在现场通过阅读它activeself财产相反,你应该使用activeinhierarchy财产,以母压倒一切的考虑。 这种超然的行为进行了统一4。在早期版本中,有一个功能叫做setactiverecursively可用于启动或关闭一个给定父对象的子对象。然而,这一功能的工作方式不同,激活设置每个子对象发生了改变,整个体系可以关闭,但孩子的对象没有办法“记住”的状态,他们原本。为了避免打破遗留代码,setactiverecursively一直在不停的API 4但不推荐使用,它可能在未来被删除。在你真正想要孩子的异常情况activeself设置可以改变,你可以使用类似于下面的代码:— - // JavaScript
- function DeactivateChildren(g: GameObject, a: boolean) {
- g.activeSelf = a;
-
- for (var child: Transform in g.transform) {
- DeactivateChildren(child.gameObject, a);
- }
- }
- // C#
- void DeactivateChildren(GameObject g, bool a) {
- g.activeSelf = a;
-
- foreach (Transform child in g.transform) {
- DeactivateChildren(child.gameObject, a);
- }
- }
复制代码
|