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); }
// -- 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); }