public void StartDrinkTask() { activeTask.task = GOAPAction.Task.DRINK; activeTask.status = GOAPAction.Status.DOING; step = GOAPAction.Step.FINDING_LOCATION; Debug.Log("Task type and status " + activeTask.task + " : " + activeTask.status); DrinkTask(); }
void DrinkTask() { GameObject drinkingSpot = new GameObject(); if (FindDrinkingSpot(ref drinkingSpot)) { Debug.Log(drinkingSpot.name); GoToPosition(drinkingSpot.transform.position); step = GOAPAction.Step.MOVING_TO_LOCATION; } else { activeTask.status = GOAPAction.Status.CANCELED; planner.CancelTask(); } }
void UpdateMoving() { if (!agent.pathPending) { if (agent.remainingDistance <= agent.stoppingDistance) { if (!agent.hasPath || agent.velocity.sqrMagnitude == 0f) { moving = false; step = GOAPAction.Step.AT_LOCATION; } } else { moving = false; } } }