private void Update() { nameTextHolder.transform.LookAt(Camera.main.transform.position); if (isAcquired) { if (controls.Player.TriangleorY.triggered) { if (GameObject.FindGameObjectWithTag("CrossHair").GetComponent <Crosshair>().enemyTarget != null) { enemyTarget = GameObject.FindGameObjectWithTag("CrossHair").GetComponent <Crosshair>().enemyTarget; if (enemyTarget != null) { navMeshAgent.speed = speed; currentState = AI_FOLLOWER_STATES.FOLLOWER_SENT_TO_ATTACK; } else { Debug.Log("No Target!"); } } } } switch (currentState) { case AI_FOLLOWER_STATES.FOLLOWER_IDLE: break; case AI_FOLLOWER_STATES.FOLLOWER_FOLLOWING: if (Vector3.Distance(player.transform.position, transform.position) <= 4.0f) { navMeshAgent.speed = 0.0f; } else { navMeshAgent.speed = speed; destination = player.transform; SetDestination(); } break; case AI_FOLLOWER_STATES.FOLLOWER_SENT_TO_ATTACK: if (enemyTarget == null) { currentState = AI_FOLLOWER_STATES.FOLLOWER_FOLLOWING; break; } destination = enemyTarget.transform; SetDestination(); break; default: break; } }
private void Start() { player = GameObject.FindGameObjectWithTag("Player"); navMeshAgent = gameObject.GetComponent <NavMeshAgent>(); navMeshAgent.speed = speed; if (navMeshAgent == null) { Debug.Log("Error: NavMeshAgent is not attatched to this AI"); } isAcquired = false; nameText.GetComponent <TextMesh>().text = followerName; currentState = AI_FOLLOWER_STATES.FOLLOWER_IDLE; }
public void OnTriggerStay(Collider col) { if (col.tag == "Player") { if (isAcquired == false) { uiActionText.SetActive(true); if (controls.Player.Interaction.triggered) { destination = player.transform; SetDestination(); currentState = AI_FOLLOWER_STATES.FOLLOWER_FOLLOWING; uiActionText.SetActive(false); isAcquired = true; } } } if (col.tag == "Enemy") { col.gameObject.GetComponent <Enemy>().TakeDamage(damage); } }