コード例 #1
0
ファイル: GoapAgent.cs プロジェクト: Hengle/UnityLab-1
        private void CreateIdleState()
        {
            _idleState = (fsm, fsmGameObject) =>
            {
                // reset data content
                ResetActionData();

                HashSet <KeyValuePair <string, object> > worldStates = _dataProvider.GetWorldStates();
                HashSet <KeyValuePair <string, object> > goals       = _dataProvider.GetGoals();

                // planning
                _plan = _planner.Plan(this, _actions, worldStates, goals);

                // if has no plan...
                if (_plan == null)
                {
                    _dataProvider.PlanFailed(goals);
                }
                else
                {
                    _dataProvider.PlanFound(goals, _plan);
                    fsm.PopState();
                    fsm.PushState(_performState);
                }
            };
        }