void OnTriggerExit(Collider other) { if (other.tag == "Enemy") { iMovement enemyOutOfRange = other.GetComponent <iMovement>(); enemies.Remove(enemyOutOfRange); enemyOutOfRange.DeathEvent().RemoveListener(delegate { BookKeepEnemy(enemyOutOfRange); }); SetTarget(); } }
void OnTriggerEnter(Collider other) { if (other.tag == "Enemy") { iMovement newEnemyDetected = other.GetComponent <iMovement>(); enemies.Add(newEnemyDetected); newEnemyDetected.DeathEvent().AddListener(delegate { BookKeepEnemy(newEnemyDetected); }); } if (enemies.Count > 0) { SetTarget(); } }
private IEnumerator SpawnGroup(Group @group) { while (@group.numberOfEnemies > 0) { yield return(new WaitForSeconds(@group.spawnTime)); GameObject enemy = Instantiate(@group.enemy); iMovement e = enemy.GetComponent <iMovement>(); e.DeathEvent().AddListener(delegate { reportDeath(); }); enemy.transform.parent = gameObject.transform; enemy.GetComponent <iMovement>().Initialize(waypointManager); @group.numberOfEnemies--; } trigger = true; }
//Инициализация private void InitializeControllers() { m_MoveController = GetComponent <iMovement>(); m_MoveController.Init(); m_DodgeController = GetComponent <iDodging>(); m_DodgeController.Init(); m_AbilityController = GetComponent <AbilityController>(); m_AbilityController.Init(); m_StaminaController = GetComponent <StaminaController>(); m_StaminaController.Init(); m_HealthController = GetComponent <HealthController>(); m_HealthController.Init(); m_ShieldController = GetComponent <ShieldController>(); m_ShieldController.Init(); m_CollisionController = GetComponent <TriggerCollisionController>(); } //Инициализация всех контроллеров
public void BookKeepEnemy(iMovement enemy) { enemies.Remove(enemy); //this gets called from an enemy when they die SetTarget(); }