Создание экземпляра не останавливается на подсчете и добавляет один дополнительный. Решение?

#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. РАБОТАЕТ!!! Большое вам спасибо. У меня не так много знаний в области программирования. Я бы никогда не догадался, что что-то простое, как это, многое меняет.