void Start () { enemyState = gameObject.GetComponent<Enemy_States>(); gazeInteraction = gameObject.GetComponentInChildren<Enemy_GazeInteraction>(); gazeInteraction.OnEnemyGazeStay += OnGazeStay; gazeInteraction.OnEnemyGazeExited += OnGazeExited; }
// Use this for initialization void Start() { enemyState = gameObject.GetComponent<Enemy_States>(); enemyState.OnAlert += PlayAlertCue; enemyState.OnAngry += PlayAngryCue; enemyState.OnFreeze += PlayFrozenCue; }
// Use this for initialization void Start() { anim = gameObject.GetComponent<Animator>(); enemyState = gameObject.GetComponent<Enemy_States>(); enemyState.OnIdle += OnIdle; enemyState.OnAlert += OnAlert; enemyState.OnAngry += OnAngry; enemyState.OnFreeze += OnFreeze; }
// Use this for initialization void Start() { enemyBody = gameObject.renderer; enemyState = gameObject.GetComponent<Enemy_States>(); enemyState.OnIdle += OnIdle; enemyState.OnAlert += OnAlert; enemyState.OnAngry += OnAngry; enemyState.OnFreeze += OnFreeze; }
/// <summary> /// State machine handling AI logic /// </summary> /// <returns></returns> IEnumerator Update_AI_State() { while (true) { distance_To_Player = Vector3.Distance(transform.position, player_Gameobject.transform.position); switch (local_Enemy_States) { case Enemy_States.MOVING_TO_PLAYER: local_Nav_Mesh_Agent.destination = player_Gameobject.transform.position; // COLM ADD IN MOVING TRIGGER HERE if (!is_Playing_Movement_Animation) { anim.SetBool("Running", true); if (!local_Base_Enemy.moving_Sound.isPlaying) { //local_Base_Enemy.moving_Sound.Play(); } is_Playing_Movement_Animation = true; } if (distance_To_Player <= attack_Range) { local_Enemy_States = Enemy_States.ATTACKING_PLAYER; } break; case Enemy_States.ATTACKING_PLAYER: gameObject.transform.LookAt(player_Gameobject.transform); gameObject.transform.localEulerAngles = new Vector3(0f, gameObject.transform.localEulerAngles.y, gameObject.transform.localEulerAngles.z); local_Nav_Mesh_Agent.destination = gameObject.transform.position; //COLM STOP ENEMY MOVING HERE anim.SetBool("Running", false); if (local_Base_Enemy.moving_Sound.isPlaying) { //local_Base_Enemy.moving_Sound.Stop(); } is_Playing_Movement_Animation = false; if (distance_To_Player > attack_Range && !is_Attacking) { local_Enemy_States = Enemy_States.MOVING_TO_PLAYER; } else { if (!recently_Hit_Player) { current_Target_Index = 0; StartCoroutine("Cast_Attack", player_Gameobject); } } break; } yield return(new WaitForSeconds(0.001f)); } }
void Start() { player = GameObject.FindGameObjectWithTag("Player"); patrolpointsAlert = new Transform[1] { player.transform }; patrolpoints = patrolpointsIdle; currentpoint = 0; enemyState = gameObject.GetComponent<Enemy_States>(); agent = gameObject.GetComponent<NavMeshAgent>(); agent.speed = idlespeed; SetListeners(); }
/// <summary> /// State machine handling AI logic /// </summary> /// <returns></returns> IEnumerator Update_AI_State() { while (true) { distance_To_Player = Vector3.Distance(transform.position, player_Gameobject.transform.position); distance_To_Objective = Vector3.Distance(transform.position, objective_Gameobject.transform.position); switch (local_Enemy_States) { case Enemy_States.MOVING_TO_OBJECTIVE: Set_Target_Objective(); if (distance_To_Player <= aggro_Range && !is_Attacking) { local_Enemy_States = Enemy_States.MOVING_TO_PLAYER; } else if (distance_To_Objective <= attack_Range) { local_Enemy_States = Enemy_States.ATTACKING_OBJECTIVE; } else { local_Nav_Mesh_Agent.destination = objective_Gameobject.transform.position; if (!is_Playing_Movement_Animation) { anim.SetBool("Running", true); if (!local_Base_Enemy.moving_Sound.isPlaying) { //local_Base_Enemy.moving_Sound.Play(); } is_Playing_Movement_Animation = true; } } break; case Enemy_States.MOVING_TO_PLAYER: if (distance_To_Player > attack_Range && distance_To_Player <= max_Attack_Range) { local_Nav_Mesh_Agent.destination = player_Gameobject.transform.position; if (!is_Playing_Movement_Animation) { anim.SetBool("Running", true); if (!local_Base_Enemy.moving_Sound.isPlaying) { // local_Base_Enemy.moving_Sound.Play(); } is_Playing_Movement_Animation = true; } } else if (distance_To_Player >= max_Attack_Range) { local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE; } else { local_Enemy_States = Enemy_States.ATTACKING_PLAYER; } break; case Enemy_States.ATTACKING_PLAYER: gameObject.transform.LookAt(player_Gameobject.transform); gameObject.transform.localEulerAngles = new Vector3(0f, gameObject.transform.localEulerAngles.y, gameObject.transform.localEulerAngles.z); local_Nav_Mesh_Agent.destination = gameObject.transform.position; if (distance_To_Player >= max_Attack_Range) { local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE; } else if (distance_To_Player > attack_Range && !is_Attacking) { local_Enemy_States = Enemy_States.MOVING_TO_PLAYER; } else { if (!recently_Hit_Player) { current_Target_Index = 0; StartCoroutine("Cast_Attack", player_Gameobject); } anim.SetBool("Running", false); if (local_Base_Enemy.moving_Sound.isPlaying) { //local_Base_Enemy.moving_Sound.Stop(); } is_Playing_Movement_Animation = false; } break; case Enemy_States.ATTACKING_OBJECTIVE: gameObject.transform.LookAt(objective_Gameobject.transform); gameObject.transform.localEulerAngles = new Vector3(0f, gameObject.transform.localEulerAngles.y, gameObject.transform.localEulerAngles.z); distance_To_Objective = Vector3.Distance(transform.position, objective_Gameobject.transform.position); local_Nav_Mesh_Agent.destination = gameObject.transform.position; if (distance_To_Player <= distance_To_Objective && distance_To_Player <= aggro_Range) { local_Enemy_States = Enemy_States.MOVING_TO_PLAYER; } else if (objective_Gameobject.GetComponent <Objective_Manager>().is_Destroyed&& !is_Attacking) { first_Objective_Is_Destroyed = true; Set_Target_Objective(); local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE; } else if (distance_To_Objective > attack_Range && !is_Attacking) { local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE; } else if (!recently_Hit_Player) { current_Target_Index = 1; StartCoroutine("Cast_Attack", objective_Gameobject); } anim.SetBool("Running", false); if (local_Base_Enemy.moving_Sound.isPlaying) { // local_Base_Enemy.moving_Sound.Stop(); } is_Playing_Movement_Animation = false; Set_Target_Objective(); break; case Enemy_States.DEAD: local_Nav_Mesh_Agent.destination = gameObject.transform.position; break; } local_Base_Enemy.health_Bar.transform.LookAt(Camera.main.transform); yield return(new WaitForSeconds(0.002f)); } }
public void On_Spawn() { local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE; Set_Target_Objective(); }
private void OnEnable() { local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE; }
// Use this for initialization void Start() { currentDelta = idleBecomeInvisible; //enemy = gameObject.transform.parent.gameObject; enemyState = gameObject.GetComponent<Enemy_States>(); gazeInteraction = gameObject.GetComponentInChildren<Enemy_GazeInteraction>(); gazeInteraction.OnEnemyGazeEntered += GazeEnter; gazeInteraction.OnEnemyGazeExited += GazeExit; }