public bool Die() { if (CurrentState != ZOMSTATE.Dead) { CurrentState = ZOMSTATE.Dead; Collider.enabled = false; Agent.enabled = false; //agent.isStopped = true; Ani.SetTrigger("Die"); StartCoroutine(Despawn()); return(true); } return(false); }
// Update is called once per frame void Update() { switch (CurrentState) { case ZOMSTATE.idle: if (InRangeOfPlayer()) { if (CanSeePlayer()) { Ani.SetBool("Walking", true); CurrentState = ZOMSTATE.Walking; Agent.isStopped = false; } } break; case ZOMSTATE.Walking: Agent.SetDestination(Player.transform.position); if (CanHitPlayer()) { Ani.SetBool("Walking", false); Agent.isStopped = true; } else if (!InRangeOfPlayer() || !CanSeePlayer()) { Ani.SetBool("Walking", false); CurrentState = ZOMSTATE.idle; Agent.isStopped = true; } else if (!CanHitPlayer()) { Ani.SetBool("Walking", true); Agent.isStopped = false; } break; default: break; } }