public override void OnBodyGUI()
        {
            GUI.color = Color.white;
            NodeEditorGUILayout.PortPair(target.GetInputPort("enter"), target.GetOutputPort("exit"));

            Rect rect = GUILayoutUtility.GetLastRect();

            rect.x    += (rect.width * 0.5f) - 50;
            rect.width = 100;
            EditorGUI.PropertyField(rect, serializedObject.FindProperty("device"), GUIContent.none);

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Repeats:", GUILayout.Width(60));
            node.repeats = EditorGUILayout.IntField(node.repeats, GUILayout.Width(33));
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Random:", GUILayout.Width(60));
            node.random = EditorGUILayout.Toggle(node.random);
            GUILayout.EndHorizontal();

            // Display the String valueIn port.
            NodePort valueInPort = node.GetInputPort("stringIn");

            if (valueInPort.IsConnected)
            {
                // Display an uneditable input value if connected
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.TextField(serializedObject.FindProperty("stringIn").displayName, valueInPort.GetInputValue <string>());
                EditorGUI.EndDisabledGroup();
                NodeEditorGUILayout.AddPortField(valueInPort);
            }
            else
            {
                NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("stringIn"), valueInPort, true);
            }

            // Display the Float valueIn port.
            NodePort fltValueInPort = node.GetInputPort("floatIn");

            if (fltValueInPort.IsConnected)
            {
                // Display an uneditable input value if connected
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.FloatField(serializedObject.FindProperty("floatIn").displayName, fltValueInPort.GetInputValue <float>());
                EditorGUI.EndDisabledGroup();
                NodeEditorGUILayout.AddPortField(fltValueInPort);
            }
            else
            {
                NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("floatIn"), fltValueInPort, true);
            }

            // Actions list
            NodeEditorGUILayout.InstancePortList("actions", typeof(Action), serializedObject, NodePort.IO.Input, Node.ConnectionType.Override, Node.TypeConstraint.Strict, OnCreateReorderableList);
            serializedObject.ApplyModifiedProperties();
            serializedObject.Update();

            // Footer
            DrawFooterGUI();
        }
        public override void OnBodyGUI()
        {
            GUI.color = Color.white;
            NodeEditorGUILayout.PortPair(target.GetInputPort("enter"), target.GetOutputPort("exit"));

            EditorGUILayout.PropertyField(serializedObject.FindProperty("subGraph"), GUIContent.none);
            DrawFooterGUI();
        }
示例#3
0
 public static void DrawPortPairField(
     this INode node,
     INodePort input,
     INodePort output,
     NodeGuiLayoutStyle intputStyle,
     NodeGuiLayoutStyle outputStyle)
 {
     NodeEditorGUILayout.PortPair(input, output, intputStyle, outputStyle);
 }
 //No longer neccessary since xNode does this automaticall now
 private void DrawInstanceDynamicPorts()
 {
     if (node.method.ReturnType == typeof(void))
     {
         NodeEditorGUILayout.PortField(new GUIContent("Target"), node.GetInputPort("Target"));
     }
     else
     {
         NodeEditorGUILayout.PortPair(node.GetInputPort("Target"), node.GetOutputPort("Return"));
     }
 }
示例#5
0
        public override void OnBodyGUI()
        {
            base.OnBodyGUI();
            var inputs  = target.InstanceInputs.ToArray();
            var outputs = target.InstanceOutputs.ToArray();

            for (var i = 0; i < Math.Min(inputs.Length, outputs.Length); i++)
            {
                NodeEditorGUILayout.PortPair(inputs[i], outputs[i]);
            }

            for (var i = outputs.Length; i < inputs.Length; i++)
            {
                NodeEditorGUILayout.PortField(inputs[i]);
            }

            for (var i = inputs.Length; i < outputs.Length; i++)
            {
                NodeEditorGUILayout.PortField(outputs[i]);
            }
        }
 public override void OnBodyGUI()
 {
     GUI.color = Color.white;
     NodeEditorGUILayout.PortPair(target.GetInputPort("enter"), target.GetOutputPort("exit"));
     DrawFooterGUI();
 }