C# 有没有办法检查对象的所有子对象是否都处于活动状态?
我是一名C#coder初学者,我正试图在Unity中制作一个游戏。因此,问题是:我是否可以检查对象的所有子对象在场景中是否都处于活动状态?我想用它来检查所有敌人是否都在活动。你可以用以下方法检查:C# 有没有办法检查对象的所有子对象是否都处于活动状态?,c#,unity3d,gameobject,C#,Unity3d,Gameobject,我是一名C#coder初学者,我正试图在Unity中制作一个游戏。因此,问题是:我是否可以检查对象的所有子对象在场景中是否都处于活动状态?我想用它来检查所有敌人是否都在活动。你可以用以下方法检查: for (int i = 0; i< gameObject.transform.childCount; i++) { if(!gameoObject.transform.GetChild(i).gameObject.activeInHierarchy) { ret
for (int i = 0; i< gameObject.transform.childCount; i++)
{
if(!gameoObject.transform.GetChild(i).gameObject.activeInHierarchy)
{
return false;
}
}
return true;
for(int i=0;i
这正是您所需要的。
由于通过所有子项实现迭代签名,因此可以使用foreach
foreach(var child in transform)
{
if(child.gameObject.activeInHierachy) continue;
return false;
}
return true;
或使用和
使用System.Linq;
bool allActive=transform.Cast().All(child=>child.activeInHierachy);
using System.Linq;
bool allActive = transform.Cast<Transform>().All(child => child.activeInHierachy);