// Update is called once per frame void Update() { if (_positions.Count > 0 && _enemies.Count > 0) { _spawnTimer += Time.deltaTime; if (_spawnTimer >= _spawnDelay) { _spawnTimer = 0f; AIStateMachine stateMachine = _enemies[Random.Range(0, _enemies.Count)]; Transform position = _positions[Random.Range(0, _positions.Count)]; if (stateMachine != null && position != null && _spawnedEnemies < _maxEnemies) { AIStateMachine tmp = (AIStateMachine)Instantiate(stateMachine, transform.position, Quaternion.identity); NavMeshAgent agent = tmp.GetComponent <NavMeshAgent>(); agent.enabled = false; tmp.transform.position = position.position; tmp.transform.rotation = position.rotation; agent.enabled = true; tmp.spawner = this; _spawnedEnemies++; } } } }