示例#1
0
    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
            }
        }
    }
示例#2
0
    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);