コード例 #1
0
ファイル: BTGraph.cs プロジェクト: recstazy/BehaviourTree
        private void ContextualCreateTreeValueAndNode(DropdownMenuAction args)
        {
            var impl = new TreeValueFunc();
            var data = new FuncNodeData(GetAvailableNodeIndex(), impl, null);

            ContextCreateNode(data);
        }
コード例 #2
0
ファイル: BTGraph.cs プロジェクト: recstazy/BehaviourTree
        private void ContextCreateBbValueAndNode(DropdownMenuAction args)
        {
            var variableName = (string)args.userData;
            var accessor     = Tree.Blackboard.GetterValues[variableName];
            var func         = new BbValueFunc(accessor.PropertyType, variableName);
            var data         = new FuncNodeData(GetAvailableNodeIndex(), func, null);

            ContextCreateNode(data);
        }
コード例 #3
0
        public TreeValueNode(FuncNodeData data) : base(data)
        {
            FuncData = data;
            ImportLayout();
            CreateOuts();

            if (FuncData.FuncImplementation is VariableFunc varFunc)
            {
                if (varFunc.VariableType != typeof(AnyValueType))
                {
                    CreatePropertyField();
                }
            }
        }
コード例 #4
0
        private NodeData CreateData(object impl)
        {
            NodeData data;

            if (!IsFuncData)
            {
                data = new TaskNodeData(Index, impl as BehaviourTask, Connections);
            }
            else
            {
                data = new FuncNodeData(Index, impl as BehaviourFunc, Connections);
            }
            return(data);
        }
コード例 #5
0
        private void ValidateBbValue(FuncNodeData data)
        {
            var func = data.FuncImplementation as BbValueFunc;

            if (func != null && !string.IsNullOrEmpty(func.VariableName))
            {
                bool?isValidName = BTWindow.SharedTree.Blackboard?.GetterValues.TryGetValue(func?.VariableName, out var accessor);

                if (isValidName.HasValue && isValidName.Value == true)
                {
                    return;
                }
            }

            AddErrorHighlight(this);
        }
コード例 #6
0
 public BbValueNode(FuncNodeData data) : base(data)
 {
     ImportLayout();
     CreateOuts();
     ValidateBbValue(data);
 }