예제 #1
0
    void GetFood()
    {
        GameObject closestObj = memorySystem.FindNearestGameObjectInMemory("Food", transform);

        if (closestObj == null)
        {
            return;
        }
        // No need to look again.
        if (behaviorState == BehaviorStates.LookingForFood)
        {
            if (BehaviorHelper.AtEndOfPath(agent))
            {
                int food = closestObj.GetComponent <Food>().value;
                memorySystem.RemoveGameObjectFromMemory(closestObj);
                agent.SetDestination(transform.position);
                hunger       += food;
                behaviorState = BehaviorStates.Wandering;
                Destroy(closestObj);
            }
            return;
        }

        behaviorState = BehaviorStates.LookingForFood;
        agent.SetDestination(closestObj.transform.position);
    }
예제 #2
0
    // -- MOVEMENT ----------
    void GetWater()
    {
        GameObject closestObj = memorySystem.FindNearestGameObjectInMemory("Drink", transform);

        if (closestObj == null)
        {
            return;
        }

        // No need to look again.
        if (behaviorState == BehaviorStates.LookingForWater)
        {
            if (BehaviorHelper.AtEndOfPath(agent))
            {
                int quench = closestObj.GetComponent <Drink>().value;
                memorySystem.RemoveGameObjectFromMemory(closestObj);
                agent.SetDestination(transform.position);
                thirst       += quench;
                behaviorState = BehaviorStates.Wandering;
                Destroy(closestObj);
            }
            return;
        }

        behaviorState = BehaviorStates.LookingForWater;
        agent.SetDestination(closestObj.transform.position);
    }