public override void OnBodyGUI() { serializedObject.Update(); Chat node = target as Chat; EditorGUILayout.PropertyField(serializedObject.FindProperty("character"), GUIContent.none); if (node.answers.Count == 0) { GUILayout.BeginHorizontal(); NodeEditorGUILayout.PortField(GUIContent.none, target.GetInputPort("input"), GUILayout.MinWidth(0)); NodeEditorGUILayout.PortField(GUIContent.none, target.GetOutputPort("output"), GUILayout.MinWidth(0)); GUILayout.EndHorizontal(); } else { NodeEditorGUILayout.PortField(GUIContent.none, target.GetInputPort("input")); } GUILayout.Space(-30); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("text"), GUIContent.none); NodeEditorGUILayout.InstancePortList("answers", typeof(DialogueBaseNode), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override); serializedObject.ApplyModifiedProperties(); }
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() { Chat dialogue = target as Chat; GUILayout.BeginHorizontal(); NodeEditorGUILayout.PortField(target.GetInputPort("input"), GUILayout.Width(100)); EditorGUILayout.Space(); if (dialogue.answers.Count == 0) { NodeEditorGUILayout.PortField(target.GetOutputPort("output"), GUILayout.Width(100)); } GUILayout.EndHorizontal(); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("text")); NodeEditorGUILayout.InstancePortList("answers", typeof(Chat.Answer), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override); }
public override void OnBodyGUI() { //base.OnBodyGUI(); var choose = target as DialogueChoose; GUILayout.BeginHorizontal(); //输入------ NodeEditorGUILayout.PortField(target.GetInputPort("Input"), GUILayout.Width(100)); EditorGUILayout.Space(); GUILayout.EndHorizontal(); //标题 NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Title")); //询问者 NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Speaker")); //选项列表 NodeEditorGUILayout.InstancePortList("ChooseList", typeof(DialogueChoose.S_Choose), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override); }
public override void OnBodyGUI() { GUI.color = Color.white; NodeEditorGUILayout.PortField(target.GetInputPort("enter")); //Debug.Log(node.filter.messageFilter); // Get port NodePort port = node.GetInputPort("value"); SerializedProperty filterProperty = serializedObject.FindProperty("filter"); SerializedProperty inputTypeProperty = serializedObject.FindProperty("inputType"); //SerializedProperty inputProperty = serializedObject.FindProperty("inputType"); //GUIContent filterContent = new GUIContent("Condition signal filter", filterProperty.tooltip); //if (filterProperty.isExpanded = EditorGUILayout.Foldout(filterProperty.isExpanded, filterContent, DelftStyles.foldoutNoHighlight)) { //EditorGUI.indentLevel++; //Debug.Log(node.filter.messageFilter); EditorGUI.BeginChangeCheck(); NodeEditorGUILayout.PropertyField(filterProperty, GUIContent.none); NodeEditorGUILayout.PropertyField(inputTypeProperty, GUIContent.none); //string oscMessage = filterProperty.FindPropertyRelative("messageFilter"); //EditorGUILayout.PropertyField(inputTypeProperty, GUILayout.Width(33)); if (EditorGUI.EndChangeCheck()) { //Debug.Log(node.filter.messageFilter); serializedObject.ApplyModifiedProperties(); serializedObject.Update(); } if (node.inputType == AiGlobals.FloatConditionType.analogin) { //Debug.Log("analogin selected"); node.filter.messageFilter = "/num/analogin/" + node.filter.port + "/"; } else if (node.inputType == AiGlobals.FloatConditionType.touch) { //Debug.Log("touch selected"); node.filter.messageFilter = "/num/touch/" + node.filter.port + "/"; } else if (node.inputType == AiGlobals.FloatConditionType.touchOsc) { //Debug.Log("touchOSC selected"); node.filter.messageFilter = "/num/1/push" + node.filter.port + "/"; // /num/1/push1/ } else if (node.inputType == AiGlobals.FloatConditionType.cleanOsc) { //Debug.Log("cleanOSC selected"); node.filter.messageFilter = "/num/clean__project_1__button_" + node.filter.port + "/"; // /num/clean__project_1__button_1/ } else if (node.inputType == AiGlobals.FloatConditionType.any) { // leave the message filter alone } serializedObject.ApplyModifiedProperties(); serializedObject.Update(); //EditorGUI.indentLevel--; //} //if (expandLastSignal = EditorGUILayout.Foldout(expandLastSignal, "Last Signal", DelftStyles.foldoutNoHighlight)) { EditorGUI.indentLevel++; //if (node.signal.isValid) EditorGUILayout.SelectableLabel(node.signal.device + ":" + node.signal.oscMessage + " " + node.signal.value.ToString()); if (node.signal.isValid) { EditorGUILayout.SelectableLabel(node.signal.oscMessage + " " + node.signal.value.ToString()); } else { EditorGUILayout.LabelField("no matching float data yet"); } EditorGUI.indentLevel--; //} // Input value EditorGUI.BeginChangeCheck(); float val = node.value; val = EditorGUILayout.Slider(val, 0f, 1023f); NodeEditorGUILayout.AddPortField(node.GetOutputPort("valueOut")); if (EditorGUI.EndChangeCheck()) { node.value = val; } EditorGUILayout.LabelField("Triggers", EditorStyles.boldLabel); NodeEditorGUILayout.InstancePortList("conditions", typeof(StateNodeBase.Empty), serializedObject, XNode.NodePort.IO.Output, XNode.Node.ConnectionType.Multiple); DrawFooterGUI(); }
private void DrawExecutionPorts() { NodeEditorGUILayout.PortField(new GUIContent("On Activate"), target.GetOutputPort("ExecuteOnEnter"), GUILayout.MinWidth(0)); NodeEditorGUILayout.InstancePortList("ButtonExecutions", typeof(ExecutionBranch), serializedObject, NodePort.IO.Output, Node.ConnectionType.Multiple); NodeEditorGUILayout.InstancePortList("Branches", typeof(ChoiceBranch), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override, Node.TypeConstraint.Strict); }
// private bool expandLastSignal = false; public override void OnBodyGUI() { GUI.color = Color.white; NodeEditorGUILayout.PortField(target.GetInputPort("enter")); // show the contents of the filter SerializedProperty filterProperty = serializedObject.FindProperty("filter"); SerializedProperty inputTypeProperty = serializedObject.FindProperty("inputType"); // Get port NodePort port = node.GetInputPort("value"); EditorGUI.BeginChangeCheck(); // SerializedProperty filterProperty = serializedObject.FindProperty("filter"); // SerializedProperty inputTypeProperty = serializedObject.FindProperty("inputType"); GUIContent filterContent = new GUIContent("Incoming signal filter", filterProperty.tooltip); // if (filterProperty.isExpanded = EditorGUILayout.Foldout(filterProperty.isExpanded, filterContent, DelftStyles.foldoutNoHighlight)) { // EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); NodeEditorGUILayout.PropertyField(filterProperty, GUIContent.none); NodeEditorGUILayout.PropertyField(inputTypeProperty, GUIContent.none); //NodeEditorGUILayout.PropertyField(inputTypeProperty, GUIContent.none); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); serializedObject.Update(); } //EditorGUI.indentLevel--; //} if (node.inputType == AiGlobals.StrConditionType.keydown) { //Debug.Log("keydown selected"); node.filter.messageFilter = "/str/keydown/"; } else if (node.inputType == AiGlobals.StrConditionType.speech2text) { //Debug.Log("speech2text selected"); node.filter.messageFilter = "/str/speech2text/"; } else if (node.inputType == AiGlobals.StrConditionType.recognize) { //Debug.Log("recognize selected"); node.filter.messageFilter = "/str/recognize/"; } serializedObject.ApplyModifiedProperties(); serializedObject.Update(); //if (expandLastSignal = EditorGUILayout.Foldout(expandLastSignal, "Last Signal", DelftStyles.foldoutNoHighlight)) { //EditorGUI.indentLevel++; if (node.signal.isValid) { EditorGUILayout.SelectableLabel(node.signal.device + ":" + node.signal.oscMessage + " " + node.signal.value.ToString()); } else { EditorGUILayout.LabelField("no matching string data yet"); } //EditorGUI.indentLevel--; //} // Input value EditorGUI.BeginChangeCheck(); string val = node.value; val = EditorGUILayout.TextField(val); NodeEditorGUILayout.AddPortField(node.GetOutputPort("valueOut")); if (EditorGUI.EndChangeCheck()) { node.value = val; } EditorGUILayout.LabelField("Triggers", EditorStyles.boldLabel); NodeEditorGUILayout.InstancePortList("conditions", typeof(StateNodeBase.Empty), serializedObject, XNode.NodePort.IO.Output, XNode.Node.ConnectionType.Multiple); DrawFooterGUI(); }