спавн объекта быстрее каждые 30 секунд
Создаю 2d игру. Сделал спавн врага:
public float Timer = 15f;
public float START = 5F;
public GameObject CHICKEN;
void Start()
{
InvokeRepeating("instanti", START, Timer);
}
void instanti()
{
Instantiate(CHICKEN, transform.position, transform.rotation);
}
и хочу чтобы они каждые 30 секунд спавнились быстрее. Но не получилось. Пытался найти ролики на ютубе насчет этого и это тоже нет. Ищу последнюю надежду здесь
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
каждые 30 секунд спавнились быстрее.
Это невозможное и противоположное условие само по себе.
Есть вариант сделать счётчик и ускорять спавн каждые несколько итераций. Примерно как-то так:
public float Timer = 15f;
public float START = 5F;
public GameObject CHICKEN;
private int ciclesToSpeedUp = 2;
private float speedUpTimerDelta = 2f;
private float timerMinimum = 4f;
private int instantiatingCount = 0;
void Start() {
StartCoroutine("instanti");
}
IEnumerator instanti() {
yield return new WaitForSeconds(START);
while (true) {
Instantiate(CHICKEN, transform.position, transform.rotation);
++instantiatingCount;
if (instantiatingCount == ciclesToSpeedUp) {
if (Timer > timerMinimum)
Timer -= speedUpTimerDelta;
}
yield return new WaitForSeconds(Timer);
}
}