public void OnUpdate() { if (IsEmpty()) { return; } GOAPAction action = steps.Peek(); action.OnUpdate(); if (action.IsFinished()) { action.ApplyWorldStateEffect(CurWorldState); action.OnExit(CurWorldState); steps.Dequeue(); if (steps.Count > 0) { steps.Peek().OnEnter(); } } }
protected virtual float GetH(GOAPAction action, GOAPGoal goal) { return(0); }
protected virtual float GetCost(GOAPAction action, GOAPGoal goal) { return(1); }