Вы можете использовать StartCoroutine для простого создания противника:
using System.Collections;
...
private IEnumerator EnemyGenerator()
{
while (true)
{
Vector3 randPosition = transform.position + (Vector3.up * Random.value); //Example of randomizing
Instantiate (enemyPrefeb, randPosition, Quaternion.identity);
yield return new WaitForSeconds(generatorTimer);
}
}
public void StartGenerator()
{
StartCoroutine(EnemyGenerator());
}
public void StopGenerator()
{
StopAllCoroutines();
}
И, как сказал Эндрю Месерви, если вы хотите добавить случайность в таймер (например, чтобы сделать задержку появления случайным образом от 0,5 до 2,0 секунд), тогда вы можете просто заменить возврат доходности на этот:
yield return new WaitForSeconds(Mathf.Lerp(0.5f, 2.0f, Random.value));