void Start() { Random.InitState(seed); spawnTimer = 0; spawnList.GenerateRandomly(); nextSpawn = spawnList.NextItemAtTime(spawnTimer); }
void Update() { spawnTimer += Time.deltaTime; if (spawnTimer > nextSpawn.time) { GameObject.Instantiate(nextSpawn.enemyData.prefab, new Vector3(nextSpawn.spawnPosition, transform.position.y, transform.position.z), Quaternion.identity); EventLogger.Log(EventLog.EventCode.EnemySpawned(nextSpawn.enemyData.prefab.name, nextSpawn.spawnPosition, transform.position.y)); nextSpawn = spawnList.NextItemAtTime(spawnTimer + 0.001f); } }
public void GenerateRandomly() { spawnList = new List <EnemySpawnListItem>(); float spawntime = 0f; for (int i = 0; i < 50; ++i) { spawntime += Random.Range(minSpawnTime, maxSpawnTime); float position = Random.Range(minSpawnPosition, maxSpawnPosition); float index = Random.Range(0, enemies.list.Count); EnemyList.EnemyData enemyData = enemies.list[(int)index]; EnemySpawnListItem spawnEvent = new EnemySpawnListItem(spawntime, position, enemyData); spawnList.Add(spawnEvent); } }