コード例 #1
0
 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);
 }
コード例 #2
0
    // 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;
        }
    }