コード例 #1
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);
        }
コード例 #2
0
        public NodeTaskProvider(TaskNodeData data)
        {
            CurrentType       = data?.TaskImplementation?.GetType();
            _currentTaskIndex = TaskFactory.GetIndex(CurrentType);

            var manipulator = new ContextualMenuManipulator(CreateMenu);

            manipulator.activators.Add(new ManipulatorActivationFilter()
            {
                button = MouseButton.LeftMouse, clickCount = 1
            });

            _label                = new Label();
            _label.text           = ObjectNames.NicifyVariableName(TaskFactory.NamesEditor[_currentTaskIndex]);
            _label.style.fontSize = 13;
            _label.AddToClassList("node-task-button");
            _label.AddManipulator(manipulator);
            Add(_label);
        }
コード例 #3
0
        public void Dispose()
        {
            if (_field != null)
            {
                _field.OnChanged -= FieldChanged;
            }
            if (_property != null)
            {
                _property.Dispose();
            }

            if (_serializedObject != null)
            {
                _serializedObject.ApplyModifiedPropertiesWithoutUndo();
                _serializedObject.Dispose();
            }

            _serializedObject = null;
            _property         = null;
            _data             = null;
        }
コード例 #4
0
        public TaskNode(TaskNodeData data) : base(data)
        {
            TaskData = data;
            _isEntry = TaskData.TaskImplementation is EntryTask;

            if (!IsEntry)
            {
                _taskProvider = new NodeTaskProvider(TaskData);
                _taskProvider.OnTaskChanged += TaskChanged;
                var titleElement = titleContainer.Children().First();
                titleContainer.Remove(titleElement);
                titleContainer.Insert(0, _taskProvider);
                titleContainer.AddToClassList("node-title-container");
                titleContainer.style.height = 25;

                _taskContainer = new TaskContainer();
                UpdateTaskContainer();
                extensionContainer.Add(_taskContainer);
            }

            UpdateAllPorts();
            UpdateTaskDependencies();
            OnAnyDeleted += UpdateTaskContainer;
        }
コード例 #5
0
 public void SetData(TaskNodeData data)
 {
     _data = data;
     UpdateField();
 }
コード例 #6
0
ファイル: BTGraph.cs プロジェクト: recstazy/BehaviourTree
        private void ContextCreateTaskAndNode(DropdownMenuAction args)
        {
            var data = new TaskNodeData(GetAvailableNodeIndex(), null, null);

            ContextCreateNode(data);
        }