Задать вопрос
@alexdurden

Как сделать бесконечный спавн с условием?

Всем привет! У меня на сцене есть точки которые пожирает Player, зарабатывая тем самым очки.

Спавн точек сейчас происходит в цикле “for (int i = 1; i <= 10; i++)”. Но задача сделать спавн бесконечным, при этом, чтобы единовременно на сцене было не больше 10 точек.

Мне уже сказали, что для этого надо использовать цикл “while”, но ума не приложу как прописать условие.

Помогите пжалуйста.

P.S. код в спойлере.

spoiler


[SerializeField]
    private Point _pointPrefab;
    
    [SerializeField][Range(0.1f, 100f)]
    private float delayTime = 5.0f;

    void Start()
    {
        StartCoroutine(SpawnPointsRoutine());
    }

    private IEnumerator SpawnPointsRoutine()
    {
        for(int i = 1; i <= 10; i++)
        {
            Instantiate(_pointPrefab, new Vector3(Random.Range(-9.8f, 6.5f), 0.5f, Random.Range(6.9f, 43.1f)), Quaternion.identity);
            yield return new WaitForSeconds(delayTime);     
        }
    }


  • Вопрос задан
  • 296 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    Разработчик игр на Unity + ИИ
    6 месяцев
    Далее
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
LittleBob
@LittleBob
Вы можете попробовать заранее создать эти 10 точек прямо на сцене за камерой и во время игры просто перемещать их на место спавна. Это кстати будет и не так ресурсозатратно, потому что destroy и instantiante тяжелые функции.
Как реализовать ваш код пока не знаю, надо думать. Но, по-моему, вариант который я предложил не хуже.
Ответ написан
Комментировать
@NIKROTOS
Начинающий программист.
закинь функцию в update( чем тебе не бесконечный цикл) и пропиши условие, если точек меньше 10 создай новую.
Кстати, для оптимизации лучше не создавать/уничтожать объекты, а создать их пул. Заранее созданные 10 точек, которые просто будешь дезактивировать/активировать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы