IEnumerator resetBehaviourCheck() //check if behaviour should be changed depending on "die roll" { while (true) { yield return(new WaitForSeconds(15)); rollDieBehaviourChange = Random.Range(0, 10); if (rollDieBehaviourChange <= 2) { CurrentState = currState.sitting; StartCoroutine(goAndSit()); Debug.Log("Player is going to sit"); } if (rollDieBehaviourChange >= 3) { CurrentState = currState.wandering; //behaviour changed to wandering StartCoroutine(waitAtDestination()); } if (rollDieBehaviourChange >= 5) { CurrentState = currState.eating; //behaviour changed to eating } if (rollDieBehaviourChange >= 8) { CurrentState = currState.sleeping; //behaviour changed to sleeping } } }
void Start() { //get wandering points wanderPoints = new Vector3[destinationObjects.Length]; for (int i = 0; i < destinationObjects.Length; ++i) { wanderPoints[i] = destinationObjects[i].transform.position; } //get vector3 of all seats seatPoints = new Vector3[seats.Length]; for (int i = 0; i < seats.Length; ++i) { seatPoints[i] = seats[i].transform.position; } //get navmeshAgent playerAgent = gameObject.GetComponent <UnityEngine.AI.NavMeshAgent>(); CurrentState = currState.wandering; //set bools to initial state setDestination = false; playerIdle = true; destinationReached = false; //start wandering StartCoroutine(waitAtDestination()); StartCoroutine(resetBehaviourCheck()); }
var(poly, rem) = ExtractPolynomialLocally(currState, currVar);