예제 #1
0
    /* State Switching Behaviour */
    private void SwitchState(E1_01States newState)
    {
        /* Call current state End methods. */
        EndState();

        /* Call new state Start methods: */
        if (newState == E1_01States.Interest || newState == E1_01States.Follow)
        {
            StartCoroutine(UpdatePath());
        }
        else if (newState == E1_01States.Fleeing)
        {
            speed = fleeSpeed;

            if (curTarget < targets.Count)
            {
                target = targets[curTarget].transform;
            }

            StartCoroutine(UpdatePath());
        }

        // Switch State.
        state = newState;
    }
예제 #2
0
    public override void Start()
    {
        base.Start();
        seeker    = GetComponent <Seeker>();
        rigidbody = GetComponent <Rigidbody2D>();

        playerTrans = GameObject.Find("Player").transform;
        playerPrev  = playerTrans.position;

        state = E1_01States.Idle;
        StartCoroutine(UpdateDistToPlayer()); // Start in the idle state, checking if close to player. Switches if so.
    }