因此,当我实例化入侵者时,当我执行其中两个时,它会工作,但是当我尝试实例化多于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}}
答案 0 :(得分:3)
我没有足够的声誉来评论,所以我会尝试回答。
您似乎创建了一个无限循环:
while (addInvader == 5f)
{
spawnInvader = false;
}
将其更改为:
if (addInvader >= 5f)
{
spawnInvader = false;
}
应该停止崩溃。