#visual-studio #unity3d #count #instantiation
#visual-studio #unity3d #граф #создание экземпляра
Вопрос:
Итак, это мой код. В SpawnObj1() и SpawnObj2() есть экземпляр кода. Префабы внутри SpawnObj()(1 и 2) появляются правильно, но SpawnObj1 создает один дополнительный префаб, когда количество равно 5. Как мне остановить создание экземпляра именно на этом уровне?
public void Spawner()
{
if (objCount < 5)
{
SpawnObj1();
}
if (objCount >= 5)
{
SpawnObj2();
}
}
Кстати, objCount — это objCount внутри SpawnObj().
Ответ №1:
Я предполагаю, что вы увеличиваете «objCount» в SpanwObject1 () и в SpawnObject2(). Если мы будем следовать коду, когда objCount равен 4
objCount is 4
SpawnObject1() // increment the objCount
objCount is 5
So the condition objCount >= 5 is valid here in the same call of "Spawner()"
SpawnObject2()
Простое решение — изменить ваш код следующим образом :
public void Spawner()
{
if (objCount < 5)
{
SpawnObject1();
}
else if (objCount >= 5)
{
SpawnObject2();
}
}
с этим исправлением функция SpawnObject2() не будет вызываться сразу после SpawnObject1, когда objCount равен 4. Вы также можете добавить возврат после каждого «SpawnObject …»
Комментарии:
1. РАБОТАЕТ!!! Большое вам спасибо. У меня не так много знаний в области программирования. Я бы никогда не догадался, что что-то простое, как это, многое меняет.