コード例 #1
0
        public bool Update(INodeEditorData editor, INode node)
        {
            var nodeName  = node.ItemName;
            var nameValue = EditorGUILayout.TextField("name:", nodeName);

            if (!string.Equals(nameValue, nodeName))
            {
                node.SetName(nameValue);
            }

            return(true);
        }
コード例 #2
0
        public virtual bool Update(INodeEditorData editor, INode node)
        {
            var target = node;
            var title  = target.ItemName;

            if (string.IsNullOrEmpty(title))
            {
                CreateNodeMenuAttribute attrib;
                var type = node.GetType();
                title = NodeEditorUtilities.GetAttrib(type, out attrib) ? attrib.nodeName : type.Name;
                node.SetName(title);
            }
            var renaming = NodeEditor.Renaming;

            if (NodeEditor.Renaming != 0 && target.IsSelected())
            {
                var controlId = GUIUtility.GetControlID(FocusType.Keyboard) + 1;
                if (renaming == 1)
                {
                    GUIUtility.keyboardControl        = controlId;
                    EditorGUIUtility.editingTextField = true;
                    NodeEditor.Renaming = 2;
                }

                var nodeName = EditorGUILayout.TextField(target.ItemName, NodeEditorResources.styles.nodeHeader,
                                                         GUILayout.Height(30));
                target.SetName(nodeName);

                if (EditorGUIUtility.editingTextField)
                {
                    return(true);
                }

                node.SetName(target.ItemName);
                NodeEditor.Renaming = 0;
            }
            else
            {
                GUILayout.Label(title, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30));
            }

            return(true);
        }
コード例 #3
0
        private void DrawPorts(INodeEditorData editor)
        {
            _drawedPorts.Clear();

            var node = editor.Target;

            foreach (var portValue in node.Ports)
            {
                if (editor.Ports.ContainsKey(portValue))
                {
                    continue;
                }

                if (_drawedPorts.ContainsKey(portValue.ItemName))
                {
                    continue;
                }

                var portName = bracketsExpr.Replace(portValue.ItemName, string.Empty, 1);

                var outputPortName = portName.GetFormatedPortName(PortIO.Output);
                var inputPortName  = portName.GetFormatedPortName(PortIO.Input);

                //Try Draw port pairs
                var result = DrawPortPair(node, inputPortName, outputPortName);

                if (result)
                {
                    var portInput  = node.GetPort(inputPortName);
                    var portOutput = node.GetPort(outputPortName);
                    _drawedPorts[inputPortName]  = portInput;
                    _drawedPorts[outputPortName] = portOutput;
                }
                else
                {
                    DrawPort(portValue);
                    _drawedPorts[portValue.ItemName] = portValue;
                }
            }
        }
コード例 #4
0
 public bool Update(INodeEditorData editor, INode node)
 {
     EditorGUIUtility.labelWidth = 84;
     Draw(editor.EditorNode);
     return(true);
 }
コード例 #5
0
 public bool Update(INodeEditorData editor, INode node)
 {
     return(true);
 }
コード例 #6
0
        public bool Update(INodeEditorData editor, INode node)
        {
            EditorDrawerUtils.DrawButton(_label, _action);

            return(true);
        }
コード例 #7
0
        public bool Update(INodeEditorData editor, INode baseNode)
        {
            DrawPorts(editor);

            return(true);
        }