// Shoot a volley towards the player void Shooting() { LookAtPlayer(); if (numberOfShots > shotsTaken) { if (!waiting) { waiting = true; waitTime = Time.time + timeBetweenShots; } if (Time.time > waitTime) { waiting = false; shotsTaken++; weapon.GetComponent <WeaponBehaviour>().Fire(); } } else { shotsTaken = 0; engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } }
void Awake() { engageState = new EngageState(this); alertState = new AlertState(this); patrolState = new PatrolState(this); navMeshAgent = GetComponent <UnityEngine.AI.NavMeshAgent> (); currentState = patrolState; }
protected void Awake() { idleState = new IdleState(this); huntState = new HuntState(this); fearState = new FearState(this); engageState = new EngageState(this); counterState = new CounterState(this); nav = GetComponent<NavMeshAgent> (); }
// Use this for initialization void Start() { player = GameObject.FindGameObjectWithTag("Player"); gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameController>(); topState = TopState.Engage; engageState = EngageState.Moving; agent = GetComponentInParent <NavMeshAgent>(); //agent.SetDestination(target.transform.position); }
void Cover() { LookAtPlayer(); if (target.GetComponent <EnemyWaypointBehaviour>().cover) { // Get into cover position and wait a certain amount of time engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } else { engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } }
private void Awake() { alertState = new AlertState(this); coverState = new CoverState(this); checkState = new CheckState(this); engageState = new EngageState(this); examineState = new ExamineState(this); flankState = new FlankState(this); patrolState = new PatrolState(this); suppressState = new SuppressState(this); navMeshAgent = GetComponent <NavMeshAgent>(); enemyHealth = GetComponent <EnemyHealth>(); }
void Moving() { if (agent.enabled) { if (!agent.pathPending && agent.remainingDistance == 0) { engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } } // Fix for the navmesh spawn error else { agent.enabled = true; agent.SetDestination(target.transform.position); } }
void Waiting() { if (!waiting) { waiting = true; waitTime = Time.time + waitCooldown; } LookAtPlayer(); //StartCoroutine(Wait(3f)); if (Time.time > waitTime) { waiting = false; engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } }
void Move() { if (target == null || target.GetComponent <EnemyWaypointBehaviour>().waypoints.Length == 0) { engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } else { tempWaypoint = target.GetComponent <EnemyWaypointBehaviour>().waypoints[Random.Range(0, target.GetComponent <EnemyWaypointBehaviour>().waypoints.Length)]; if (!tempWaypoint.GetComponent <EnemyWaypointBehaviour>().occupied) { tempWaypoint.GetComponent <EnemyWaypointBehaviour>().occupied = true; target.GetComponent <EnemyWaypointBehaviour>().occupied = false; target = tempWaypoint; agent.SetDestination(target.transform.position); engageState = EngageState.Moving; } else { engageState = (EngageState)Random.Range(0, (int)EngageState.Moving - 1); } } }