/// <summary> 终止计划(在<see cref="interval"/>之后才会重新搜寻计划) </summary> public void AbortPlan() { if (HasPlan) { actionQueue.Clear(); } if (CurrentAction != null) { CurrentAction.OnPostPerform(false); // 如果动作执行失败,转换到空闲状态,并通知因为该动作导致计划失败 if (Provider != null) { Provider.PlanAborted(CurrentAction); } } CurrentAction = null; CurrentGoal = null; FSM.ChangeTo("IdleState"); }