实例化重载不确定原因

时间:2014-01-08 03:37:40

标签: c# unity3d instantiation

因此,当我实例化入侵者时,当我执行其中两个时,它会工作,但是当我尝试实例化多于2个(创建变量float addInvaders时,如果addInvader//globals float addInvader = 0f; bool spawnInvader = true; public GameObject invaders; void Update() { SpawnInvaders (); while (addInvader == 5f) { spawnInvader = false; } } void SpawnInvaders() { if (spawnInvader) { Vector3 newPos = transform.position; Quaternion roto = transform.rotation; newPos.x = 900f; newPos.y = 0f; newPos.z = 800f; roto.z = 180f; Instantiate (invaders, newPos, roto); addInvader++; if (addInvader >= 1f) { newPos.x = newPos.x - 200f; newPos.y = 0f; newPos.z = 800f; roto.z = 180f; Instantiate (invaders, newPos, roto); } } return; } 则为if语句等于5)我的游戏字面上只是崩溃。它运行了一秒钟,我看到它创建了一百万个入侵者,然后Unity不再响应了。想知道我做错了什么,以及我能做些什么来修复。我想这是您需要的所有代码,请告诉我如果需要我会添加其他代码。

{{1}}

1 个答案:

答案 0 :(得分:3)

我没有足够的声誉来评论,所以我会尝试回答。

您似乎创建了一个无限循环:

while (addInvader == 5f)
{
    spawnInvader = false;
}

将其更改为:

if (addInvader >= 5f)
{
    spawnInvader = false;
}

应该停止崩溃。