[SerializeField] GameObject[] spawnObj;
[SerializeField] float spawnDelay;
[SerializeField] float xSize;
[SerializeField] float ySize;
float timer = 0;
void Update()
{
if (timer > 0)
{
timer -= Time.deltaTime;
}
else
{
timer = spawnDelay;
GameObject toSpawn = spawnObj[Random.Range(0, spawnObj.Length-1];
Vector2 pos = transform.position + Vector3(Random.Range(-xSize, xSize), Random.Range(-ySize, ySize), 0);
Instantiate(toSpawn, pos, Quaternion.identity);
}
}
Спавнит заданные объекты с определённым интервалом, в области вокруг спавнера
spawnObj - список объектов для спавна
spawnDelay - задержка спавна
xSize - размер области спавна по x
ySize - размер области спавна по y
Вообще, код очень примитивный, с базовыми знаниями юнити и C#