当我尝试使用时:
GameObject.Find("teleportation").SetActiveRecursively(true);
GameObject.SetActiveRecursively(bool)
已过时,它说使用GameObject.SetActive()
代替现在由儿童继承。
在我的层次结构中,我有一个活跃的对象,他的孩子不活跃。
如果我在活动对象上使用GameObject.SetActive()
,则不会激活子项。
如果我在活动对象上使用GameObject.SetActiveRecursively()
,则会激活子项。
那么,我应该使用不同的东西让孩子活跃吗?
我不明白为什么GameObject.SetActive()
无法工作。
答案 0 :(得分:3)
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);