gpt4 book ai didi

c# - GameObject.SetActiveRecursively (true) 过时了吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:09 30 4
gpt4 key购买 nike

当我尝试使用时:

GameObject.Find("teleportation").SetActiveRecursively(true);

GameObject.SetActiveRecursively(bool) 已过时,它说使用 GameObject.SetActive() 代替,现在由子级继承。

在我的层次结构中,我有一个对象处于事件状态,而他的 child 处于非事件状态。如果我在事件对象上使用 GameObject.SetActive(),子对象不会被激活。如果我在事件对象上使用 GameObject.SetActiveRecursively(),子对象就会被激活。

那么,我应该用不同的方法让 child 活跃起来吗?我不明白为什么 GameObject.SetActive() 不起作用。

最佳答案

正如您提到的,SetActiveRecursively 函数已过时。您现在应该使用 SetActive()

您可以使用递归和SetActive() 来复制SetActiveRecursively 的功能。您也可以将其放在扩展方法中。

public static class ExtentionMethod
{
public static void SetActiveRecursivelyExt(this GameObject obj, bool state)
{
obj.SetActive(state);
foreach (Transform child in obj.transform)
{
SetActiveRecursivelyExt(child.gameObject, state);
}
}
}

用法:

GameObject obj = GameObject.Find("teleportation");
obj.SetActiveRecursivelyExt(true);

关于c# - GameObject.SetActiveRecursively (true) 过时了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41507755/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com