2014-01-08 4 views
1

Итак, когда я создавал экземпляры захватчиков, он работал, когда я сделал 2 из них, но как только я попытался создать экземпляр более 2 (создал переменную float addInvaders и оператор if, если addInvader равен 5) моя игра буквально просто падает. Он работает на секунду, и я вижу, что он создается, как миллион захватчиков, и тогда Unity больше не отвечает. Удивление, что я делаю неправильно, и что я могу сделать, чтобы исправить. Я думаю, что это весь код, который вам нужен, пожалуйста, дайте мне знать. Я добавлю дополнительный код в случае необходимости.Мгновенное перегрузка не знаю почему

//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; 
} 

ответ

3

У меня недостаточно репутации для комментариев, поэтому я постараюсь ответить вместо этого.

Похоже, вы создали бесконечный цикл:

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

изменить его на:

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

Он должен остановить сбой.

+0

спасибо, сэр. будет палец вверх, когда время позволяет мне. Глупая ошибка с моей стороны. –

Смежные вопросы