C# 阻止敌人繁殖单位的方法5

C# 阻止敌人繁殖单位的方法5,c#,unity3d,unity5,C#,Unity3d,Unity5,我正在开发一款激光防御游戏 这里是负责繁殖敌人的主要功能。我将可变波设置为3。然后我想摧毁太空船的位置,以免它们繁殖。问题是当我开始游戏时,根本没有飞船 if (AllMembersDead()) { for (float i = 0; i < waves; i++) { SpawnUntilFull(); // number of waves to be spawned } Destroy(position); } 我不确定我

我正在开发一款激光防御游戏

这里是负责繁殖敌人的主要功能。我将可变波设置为3。然后我想摧毁太空船的位置,以免它们繁殖。问题是当我开始游戏时,根本没有飞船

if (AllMembersDead())
{
    for (float i = 0; i < waves; i++)
    {
        SpawnUntilFull();       // number of waves to be spawned
    }
    Destroy(position);
}

我不确定我做错了什么。任何指导都将不胜感激。

我认为您的AllMembersDead()函数返回false,因为您正在查看的childPositionGameObject是TotalPositions gameobject,因此从未调用SpawnUntilFull()。 尝试将函数更改为指向正确的父级,例如:

bool AllMembersDead()
{
    foreach(Transform childPositionGameObject in position)
    {
        if (childPositionGameObject.childCount > 0)
        {
            return false;
        }
    }
    return true;
}

我明白了,我想我明白你想得到什么了,我最后在foreach语句Transform allChildren=getcomponentchildren()的上方添加了一行代码;不幸的是,这并没有改变任何事情。
bool AllMembersDead()
{
    foreach(Transform childPositionGameObject in position)
    {
        if (childPositionGameObject.childCount > 0)
        {
            return false;
        }
    }
    return true;
}