예제 #1
0
    public void Pursue()
    {
        // toggle value
        pursue = !pursue;

        if (pursue)
        {   // store current state for later use
            lastState = currentState;
            if (playerDistance < 12)
            {
                GetComponent <NavMeshAgent>().SetDestination(player.transform.position);
            }

            else
            {
                //PickNextNavPoint();
                ChangeState(lastState.GetType());
            }
            // change state to Pursue
            ChangeState <PursueState>();
        }
        else
        {
            // restore stored state from before
            ChangeState(lastState.GetType());
        }
    }
예제 #2
0
    public void Pause()
    {
        // toggle paused value
        paused = !paused;

        if (paused)
        {
            // store current state for use when unpausing
            lastState = currentState;

            // change state to Pause
            ChangeState <PauseState>();
            GetComponent <NavMeshAgent>().isStopped = true;
        }

        else
        {
            // restore stored state when pausing earlier
            ChangeState(lastState.GetType());
            GetComponent <NavMeshAgent>().isStopped = false;
        }
    }