/* 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; }
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. }