private AbstractNode AnalysisNode(NodeValue nodeValue, IConditionCheck iConditionCheck)
        {
            AbstractNode nodeBase = BehaviorConfigNode.Instance.GetNode(nodeValue.identificationName);

            if (nodeValue.NodeType == (int)NODE_TYPE.CONDITION)  // 条件节点
            {
                NodeCondition condition = (NodeCondition)nodeBase;
                condition.SetData(nodeValue.parameterList, nodeValue.conditionGroupList);
                condition.SetConditionCheck(iConditionCheck);
            }
            else if (nodeValue.NodeType == (int)NODE_TYPE.ACTION)
            {
                NodeAction action = (NodeAction)nodeBase;
                action.SetParameters(nodeValue.parameterList);
            }
            else if (nodeValue.NodeType == (int)NODE_TYPE.IF_JUDEG_PARALLEL || nodeValue.NodeType == (int)NODE_TYPE.IF_JUDEG_SEQUENCE)
            {
                NodeIfJudge ifJudge = (NodeIfJudge)nodeBase;
                ifJudge.SetData(nodeValue.ifJudgeDataList);
                ifJudge.SetDefaultResult((ResultType)nodeValue.defaultResult);
            }
            else if (nodeValue.NodeType == (int)NODE_TYPE.DECORATOR_REPEAT)
            {
                NodeDecoratorRepeat repeat = (NodeDecoratorRepeat)nodeBase;
                repeat.SetRepeatCount(nodeValue.repeatTimes);
            }

            return(nodeBase);
        }
        public NodeCondition GetCondition(NodeValue nodeValue, IConditionCheck iConditionCheck)
        {
            NodeCondition condition = (NodeCondition)CustomNode.Instance.GetNode(nodeValue.identification);

            condition.SetData(nodeValue.parameterList, nodeValue.conditionGroupList);
            condition.SetConditionCheck(iConditionCheck);
            return(condition);
        }
Exemple #3
0
        public NodeCondition GetCondition(NodeValue nodeValue, IConditionCheck iConditionCheck)
        {
            UnityEngine.Profiling.Profiler.BeginSample("GetCondition1");
            NodeCondition condition = (NodeCondition)CustomNode.Instance.GetNode(nodeValue.identificationName);

            UnityEngine.Profiling.Profiler.EndSample();

            condition.SetData(nodeValue.parameterList, nodeValue.conditionGroupList);
            condition.SetConditionCheck(iConditionCheck);

            return(condition);
        }