void FixedUpdate() { if (Target == null) { agent.SetDestination(StartPos); if (agent.remainingDistance > agent.stoppingDistance) { Anim.SetBool("Running", true); } else { Anim.SetBool("Running", false); } Hit = Physics.OverlapSphere(transform.position, SpottingDistance, layerMask); foreach (Collider target in Hit) { if (target.gameObject != this.gameObject && target.tag == "NPC" && !FriendlyList.Contains(target.name)) { if (!FriendlyList.Contains(target.name)) { ReturnToPosition = false; Target = target.transform; EquippedHammer.SetActive(true); UnEquippedHammer.SetActive(false); break; } } } } else if (Target != null) { if (!IsAtTarget) { agent.SetDestination(Target.position); } if (agent.remainingDistance > agent.stoppingDistance) { Anim.SetBool("Running", true); IsAtTarget = false; float Distance = Vector3.Distance(transform.position, Target.position); if (Distance > 25) { EnemyDied(null); } } else if (!IsAtTarget && agent.remainingDistance > 0.1f) { IsAtTarget = true; Anim.SetBool("Running", false); AtTarget(); } } }
void FixedUpdate() { if (Target == null) { agent.SetDestination(StartPos); if (agent.remainingDistance > agent.stoppingDistance) { Anim.SetBool("Running", true); } else { Anim.SetBool("Running", false); } Hit = Physics.OverlapSphere(transform.position, SpottingDistance, layerMask); foreach (Collider target in Hit) { if (target.gameObject != this.gameObject && target.tag == "NPC") { if (!FriendlyList.Contains(target.name)) { ReturnToPosition = false; Target = target.transform; //if (target.name != "Player") // target.GetComponent<BaseNPC>().OnDeath += EnemyDied; EquippedHammer.SetActive(true); UnEquippedHammer.SetActive(false); break; } } } } else if (Target != null) { agent.SetDestination(Target.position); if (agent.remainingDistance > agent.stoppingDistance) { //agent.isStopped = false; Anim.SetBool("Running", true); IsAtTarget = false; } else if (!IsAtTarget && agent.remainingDistance > 0.1f) { IsAtTarget = true; //agent.isStopped = true; Anim.SetBool("Running", false); //transform.LookAt(Target); AtTarget(); } } }
public override void EnemyDied(BaseNPC Sender) { //Sender.OnDeath -= EnemyDied; //if(agent.isOnNavMesh) //agent.isStopped = false; //Target = null; //if (Anim != null) //{ // Anim.SetBool("Running", false); // Anim.SetBool("Attacking", false); //} if (this != null) { EquippedHammer.SetActive(false); UnEquippedHammer.SetActive(true); IsAtTarget = false; ReturnToPosition = true; base.EnemyDied(null); } }