public override void OnBodyGUI() { serializedObject.Update(); DialogueChatNode node = target as DialogueChatNode; EditorGUILayout.PropertyField(serializedObject.FindProperty("character"), GUIContent.none); if (node.answers == null || 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("content"), GUIContent.none); NodeEditorGUILayout.DynamicPortList("answers", typeof(DialogueBaseNode), serializedObject, NodePort.IO.Output, Node.ConnectionType.Override); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { if (_dataSelectorNode == null) { _dataSelectorNode = (DataSelectorNode)target; } serializedObject.Update(); if (_dataSelectorNode.SerializableInfos.Count > 0) { string[] choices = _dataSelectorNode.SerializableInfos.Select(info => info.Name).ToArray(); int choiceIndex = EditorGUILayout.Popup(_dataSelectorNode.ChoiceIndex, choices); if (choiceIndex != _dataSelectorNode.ChoiceIndex) { UpdateChoice(choiceIndex); } _dataSelectorNode.SelectedSerializableInfo = _dataSelectorNode.SerializableInfos.ElementAt(_dataSelectorNode.ChoiceIndex); NodePort dataPort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Data)); NodeEditorGUILayout.AddPortField(dataPort); NodePort outputPort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Output)); outputPort.ValueType = _dataSelectorNode.SelectedSerializableInfo.Type; NodeEditorGUILayout.AddPortField(outputPort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_dataSelectorNode.Data))); } serializedObject.ApplyModifiedProperties(); }
/// <inheritdoc /> public override void OnBodyGUI() { SOFlowEditorUtilities.AdjustTextContrast(GetTint()); serializedObject.Update(); EventNode eventNode = (EventNode)target; NodePort entryPort = GetDynamicPort("Entry", true, Node.ConnectionType.Multiple); NodePort exitPort = GetDynamicPort("Exit", false); SOFlowEditorUtilities.DrawHorizontalColourLayer(SOFlowEditorSettings.TertiaryLayerColour, () => { NodeEditorGUILayout.PortField(entryPort, GUILayout.MinWidth(0f)); NodeEditorGUILayout.PortField(exitPort, GUILayout.MinWidth(0f)); }); SOFlowEditorUtilities.RestoreTextContrast(); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(eventNode.Event))); serializedObject.ApplyModifiedProperties(); }
// Modify display method public override void OnBodyGUI() { if (_basicTileNode == null) { _basicTileNode = (BasicTileNode)target; } // Specifying the update method onUpdateNode = NodeUpdate; serializedObject.Update(); // Not needed can use TileNode field //SerializedProperty sp = serializedObject.FindProperty("tile"); //Tile tile = (Tile) sp.objectReferenceValue; //sp.objectReferenceValue = EditorGUILayout.ObjectField("Tile", tile, typeof(Tile), false); // Specific unity object picker for tile _basicTileNode.tile = (Tile)EditorGUILayout.ObjectField("Tile", _basicTileNode.tile, typeof(Tile), false, GUILayout.ExpandWidth(true)); // Refresh image preview if (_basicTileNode.tile != null) { LoadTexture(_basicTileNode.tile.sprite); } if (_tileImg != null) { EditorGUILayout.LabelField(new GUIContent(_tileImg)); } NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("tile")); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { // Only change the selected bool when the event is Layout, if it is changed on another event, // the gui throws an exception due to mismatched state between calls if (Event.current.type == EventType.Layout) { _selected = Selection.activeObject == target; } if (_variableChangeNode == null) { _variableChangeNode = (DialogueVariableChangeNode)target; } serializedObject.Update(); var dialogueGraph = (DialogueGraph)_variableChangeNode.graph; NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_variableChangeNode.PredecessorNode))); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_variableChangeNode.SuccessorNode))); var options = dialogueGraph.Variables.Keys.ToArray(); var selectedValue = EditorGUILayout.Popup("Variable:", options.ToList().IndexOf(_variableChangeNode.VariableName), options); _variableChangeNode.VariableName = selectedValue >= 0 ? options[selectedValue] : ""; NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_variableChangeNode.Value))); // Apply property modifications serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { serializedObject.Update(); NodeEditorGUILayout.PortField(value); NodeEditorGUILayout.PropertyField(type); switch (type.enumValueIndex) { case 0: // Euler EditorGUILayout.PrefixLabel("Euler Angles"); NodeEditorGUILayout.PropertyField(vector0, quaternion.GetInputPort(nameof(vector0))); break; case 1: // LookRotation EditorGUILayout.PrefixLabel("Forward Direction"); NodeEditorGUILayout.PropertyField(vector0, quaternion.GetInputPort(nameof(vector0))); NodeEditorGUILayout.PropertyField(setUpward); if (setUpward.boolValue) { EditorGUILayout.PrefixLabel("Upward Direction"); NodeEditorGUILayout.PropertyField(vector1, quaternion.GetInputPort(nameof(vector1))); } break; case 2: // FromToRotation EditorGUILayout.PrefixLabel("From Direction"); NodeEditorGUILayout.PropertyField(vector0, quaternion.GetInputPort(nameof(vector0))); EditorGUILayout.PrefixLabel("To Direction"); NodeEditorGUILayout.PropertyField(vector1, quaternion.GetInputPort(nameof(vector1))); break; } serializedObject.ApplyModifiedProperties(); }
/// <summary> /// Shows a map in this node with the passed information /// </summary> /// <param name="mapProperty">Name of the serialized map generator property</param> /// <param name="minMaxMaskProperty">Name of the serialized float min max mask property</param> /// <param name="useMapProperty">Name of the serialized bool use map property</param> /// <param name="displayName">Display name of this map (heightmap, temperature, etc)</param> private void ShowMapField(string mapProperty, string minMaxMaskProperty, string useMapProperty, string displayName) { SerializedProperty mapProp = serializedObject.FindProperty(mapProperty); SerializedProperty minMaxProp = serializedObject.FindProperty(minMaxMaskProperty); SerializedProperty useMapProp = serializedObject.FindProperty(useMapProperty); EditorGUILayout.PropertyField(useMapProp, new GUIContent(displayName)); //Use this map as a mask if (useMapProp.boolValue) { EditorGUI.indentLevel++; NodeEditorGUILayout.PropertyField(mapProp, new GUIContent("Generator")); //Min / Max Slider Rect ctrl = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight); EditorGUI.BeginProperty(ctrl, GUIContent.none, minMaxProp); EditorGUI.BeginChangeCheck(); Vector2 minMaxVal = minMaxProp.vector2Value; EditorGUI.MinMaxSlider(ctrl, ref minMaxVal.x, ref minMaxVal.y, 0f, 1f); //Modify serialized value if changed if (EditorGUI.EndChangeCheck()) { minMaxProp.vector2Value = minMaxVal; } EditorGUI.EndProperty(); EditorGUI.indentLevel--; } }
public override void OnBodyGUI() { if (_actionSetterNode == null) { _actionSetterNode = (ActionSetterNode)target; } serializedObject.Update(); if (_actionSetterNode.SelectedSerializableInfo != null && _actionSetterNode.SerializableInfos.Count > 0) { NodePort valuePort = _actionSetterNode.GetPort(nameof(_actionSetterNode.Value)); valuePort.ValueType = _actionSetterNode.SelectedSerializableInfo.Type; NodeEditorGUILayout.PortField(valuePort); string[] choices = _actionSetterNode.SerializableInfos.Select(info => info.Name).ToArray(); int choiceIndex = EditorGUILayout.Popup(_actionSetterNode.ChoiceIndex, choices); if (choiceIndex != _actionSetterNode.ChoiceIndex) { UpdateChoice(choiceIndex); } _actionSetterNode.SelectedSerializableInfo = _actionSetterNode.SerializableInfos.ElementAt(_actionSetterNode.ChoiceIndex); NodePort dataPort = _actionSetterNode.GetPort(nameof(_actionSetterNode.Data)); NodeEditorGUILayout.AddPortField(dataPort); NodePort linkedOptionPort = _actionSetterNode.GetPort(nameof(_actionSetterNode.LinkedOption)); NodeEditorGUILayout.AddPortField(linkedOptionPort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_actionSetterNode.Data))); } serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { if (node == null) { node = target as MovesetAttackNode; } serializedObject.Update(); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("lastNode")); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("attackDefinition")); executeList.DoLayoutList(); inputSequence.DoLayoutList(); // Draw GUI NodeEditorGUILayout.DynamicPortList( "nextNode", // field name typeof(nextNodeDefinition), // field type serializedObject, // serializable object NodePort.IO.Output); // onCreate override. This is where the magic happens. serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { if (_actionLauncherNode == null) { _actionLauncherNode = (ActionLauncherNode)target; } serializedObject.Update(); if (_actionLauncherNode.SerializableInfos.Count > 0) { foreach (NodePort dynamicInput in _actionLauncherNode.DynamicInputs) { NodeEditorGUILayout.PortField(dynamicInput); } string[] choices = _actionLauncherNode.SerializableInfos.Select(info => info.Name).ToArray(); //BUG-fred ArgumentException: Getting control 2's position in a group with only 2 controls when doing mouseUp int choiceIndex = EditorGUILayout.Popup(_actionLauncherNode.ChoiceIndex, choices); if (choiceIndex != _actionLauncherNode.ChoiceIndex) { UpdateChoice(choiceIndex); } _actionLauncherNode.SelectedSerializableInfo = _actionLauncherNode.SerializableInfos .ElementAt(_actionLauncherNode.ChoiceIndex); NodePort dataPort = _actionLauncherNode.GetPort(nameof(_actionLauncherNode.Data)); NodeEditorGUILayout.AddPortField(dataPort); NodePort linkedOptionPort = _actionLauncherNode.GetPort(nameof(_actionLauncherNode.LinkedOption)); NodeEditorGUILayout.AddPortField(linkedOptionPort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_actionLauncherNode.Data))); } serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { serializedObject.Update(); var node = target as HumanItemConditionNode; EditorGUIUtility.labelWidth = 60; NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("itemId")); if (node.itemId != null && node.itemId.Length > 0) { var style = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleRight }; if (MMX.ItemStorage.shared.items.ContainsKey(node.itemId)) { var item = MMX.ItemStorage.shared.items[node.itemId]; EditorGUILayout.LabelField(item.name, style, GUILayout.ExpandWidth(true)); } else { EditorGUILayout.LabelField("Invalid Item Id", style, GUILayout.ExpandWidth(true)); } } NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("comparisonOperator")); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("count")); NodeEditorGUILayout.PortField(target.GetOutputPort("output")); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { serializedObject.Update(); GUILayout.BeginHorizontal(); { NodeEditorGUILayout.PortField(new GUIContent("Prev"), target.GetInputPort("prev"), GUILayout.Width(30)); DrawTextSupplements(); GUILayout.BeginVertical(GUILayout.Width(55)); { NodeEditorGUILayout.PortField(new GUIContent("Success"), target.GetOutputPort("success"), GUILayout.Width(55)); NodeEditorGUILayout.PortField(new GUIContent("Fail"), target.GetOutputPort("fail"), GUILayout.Width(55)); } GUILayout.EndVertical(); } GUILayout.EndHorizontal(); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("text"), new GUIContent("Text"), false); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("synonims")); GUILayout.BeginHorizontal(); { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("blacklist"), true, GUILayout.Width(100)); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("whitelist"), true, GUILayout.Width(10)); } GUILayout.EndHorizontal(); // Apply property modifications serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { serializedObject.Update(); Chat node = target as Chat; EditorGUILayout.LabelField("讲话的那位"); EditorGUILayout.PropertyField(serializedObject.FindProperty("character"), GUIContent.none); if (node.answers.Count > 1) { EditorGUILayout.LabelField("回复的那位"); EditorGUILayout.PropertyField(serializedObject.FindProperty("answerCharacter"), GUIContent.none); } EditorGUILayout.LabelField("左侧立绘(可为空)"); EditorGUILayout.PropertyField(serializedObject.FindProperty("leftCharacter"), GUIContent.none); EditorGUILayout.LabelField("右侧立绘(可为空)"); EditorGUILayout.PropertyField(serializedObject.FindProperty("rightCharacter"), 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() { if (_actionSetterNode == null) { _actionSetterNode = (ActionSetterNode)target; } if (_actionSetterNode.SelectedSerializableInfo != null && _actionSetterNode.SerializableInfos.Count > 0) { NodePort valuePort = _actionSetterNode.GetPort(nameof(_actionSetterNode.Value)); valuePort.ValueType = _actionSetterNode.SelectedSerializableInfo.Type; NodeEditorGUILayout.PortField(valuePort); string[] choices = _actionSetterNode.SerializableInfos.Select(info => info.Name).ToArray(); //BUG-fred ArgumentException: Getting control 2's position in a group with only 2 controls when doing mouseUp int choiceIndex = EditorGUILayout.Popup(_actionSetterNode.ChoiceIndex, choices); if (choiceIndex != _actionSetterNode.ChoiceIndex) { UpdateChoice(choiceIndex); } NodePort dataPort = _actionSetterNode.GetPort(nameof(_actionSetterNode.Data)); NodeEditorGUILayout.AddPortField(dataPort); NodePort linkedOptionPort = _actionSetterNode.GetPort(nameof(_actionSetterNode.LinkedOption)); NodeEditorGUILayout.AddPortField(linkedOptionPort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_actionSetterNode.Data))); } }
public override void OnBodyGUI() { _statesIn = serializedObject.FindProperty("statesIn"); if (Selection.activeObject == _node) { var optionsList = _node.graph.nodes .OfType <AIBrainStateNode>() .Select(node => node.name) .ToList(); optionsList.AddRange(_node.graph.nodes .OfType <AIBrainSubgraphNode>() .SelectMany(node => node.inputStates .Select(inputState => GeneratorUtils.GetSubgraphStateName(node.name, inputState.fieldName)))); if (optionsList.Count > 0) { var options = optionsList.ToArray(); _stateIndex = EditorGUILayout.Popup(_stateIndex, options); EditorGUILayout.Space(); _node.stateName = options[_stateIndex]; } else { EditorGUILayout.LabelField(C.LABEL_NO_STATE_AVAILABLE); EditorGUILayout.Space(); } } serializedObject.Update(); NodeEditorGUILayout.PropertyField(_statesIn); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { // Only change the selected bool when the event is Layout, if it is changed on another event, // the gui throws an exception due to mismatched state between calls if (Event.current.type == EventType.Layout) { _selected = Selection.activeObject == target; } if (_numberForkNode == null) { _numberForkNode = (DialogueNumberForkNode)target; } NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_numberForkNode.InputNode))); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_numberForkNode.Variable))); var validFloat = float.TryParse(EditorGUILayout.TextField("Compare To", _numberForkNode.ComparisonValue.ToString(CultureInfo.CurrentCulture)), out var parsed); if (validFloat) { _numberForkNode.ComparisonValue = parsed; } NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_numberForkNode.Bigger))); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_numberForkNode.Equal))); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_numberForkNode.Smaller))); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { //Because we're not calling base.OnBodyGUI //change checks need to be performed manually EditorGUI.BeginChangeCheck(); //IO NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Output")); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Generator")); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Uniform")); if (Sn.Uniform) { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Amount")); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Factor")); } if (EditorGUI.EndChangeCheck()) { Sn.OnValueChange(); } }
public override void OnBodyGUI() { _subgraph = serializedObject.FindProperty("subgraph"); serializedObject.Update(); EditorGUIUtility.labelWidth = 60; foreach (var stateIn in _node.inputStates) { NodeEditorGUILayout.PortField(stateIn); } foreach (var stateOut in _node.outputStates) { NodeEditorGUILayout.PortField(stateOut); } EditorGUILayout.Space(); NodeEditorGUILayout.PropertyField(_subgraph); serializedObject.ApplyModifiedProperties(); if (!(_node.graph is IBrainGraph graph)) { return; } if (!ReferenceEquals(graph.StartingNode, _node) && GUILayout.Button(C.LABEL_SET_AS_STARTING_STATE)) { graph.StartingNode = _node; } }
public override void OnBodyGUI() { if (_dataSelectorNode == null) { _dataSelectorNode = (DataSelectorNode)target; } serializedObject.Update(); if (_dataSelectorNode.SerializableInfos.Count > 0) { string[] choices = _dataSelectorNode.SerializableInfos.Select(info => info.Name).ToArray(); //BUG-fred ArgumentException: Getting control 2's position in a group with only 2 controls when doing mouseUp _dataSelectorNode.ChoiceIndex = EditorGUILayout.Popup(_dataSelectorNode.ChoiceIndex, choices); _dataSelectorNode.SelectedSerializableInfo = _dataSelectorNode.SerializableInfos.ElementAt(_dataSelectorNode.ChoiceIndex); NodePort dataPort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Data)); NodeEditorGUILayout.AddPortField(dataPort); NodePort nodePort = _dataSelectorNode.GetPort(nameof(_dataSelectorNode.Output)); nodePort.ValueType = _dataSelectorNode.SelectedSerializableInfo.Type; NodeEditorGUILayout.AddPortField(nodePort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(_dataSelectorNode.Data))); } serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { GUI.color = Color.white; NodeEditorGUILayout.PortField(target.GetInputPort("enter")); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("message"), GUIContent.none); DrawFooterGUI(); }
public override void OnBodyGUI() { //Output NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Output")); NodeEditorGUILayout.PortField(Node.GetPort("Constraint")); //Textures SerializedProperty diffuse = serializedObject.FindProperty("Diffuse"); SerializedProperty normal = serializedObject.FindProperty("Normal"); int texDimens = GetWidth() / 2 - TEXTURE_PADDING - NODE_PADDING * 2; Rect ctrl = EditorGUILayout.GetControlRect(false, texDimens); ctrl.width = texDimens; //Diffuse & Normal EditorGUI.BeginProperty(ctrl, GUIContent.none, diffuse); EditorGUI.BeginChangeCheck(); Object diffRef = EditorGUI.ObjectField(ctrl, diffuse.objectReferenceValue, typeof(Texture2D), false); if (EditorGUI.EndChangeCheck()) { diffuse.objectReferenceValue = diffRef; } EditorGUI.EndProperty(); ctrl.x += texDimens + TEXTURE_PADDING; EditorGUI.BeginProperty(ctrl, GUIContent.none, normal); EditorGUI.BeginChangeCheck(); Object normRef = EditorGUI.ObjectField(ctrl, normal.objectReferenceValue, typeof(Texture2D), false); if (EditorGUI.EndChangeCheck()) { normal.objectReferenceValue = normRef; } EditorGUI.EndProperty(); //Labels GUIStyle centeredStyle = GUI.skin.GetStyle("Label"); centeredStyle.normal.textColor = Color.white; centeredStyle.alignment = TextAnchor.UpperCenter; ctrl = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight); ctrl.width = texDimens; EditorGUI.LabelField(ctrl, "Diffuse", centeredStyle); ctrl.x += texDimens + TEXTURE_PADDING; EditorGUI.LabelField(ctrl, "Normal", centeredStyle); //Tiling/Offset NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Tiling")); NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Offset")); //Blend NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Blend")); }
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(); }
protected override void SerializeAdditionalProperties() { _afterTime = serializedObject.FindProperty("afterTime"); serializedObject.Update(); NodeEditorGUILayout.PropertyField(_afterTime); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { _transitions = serializedObject.FindProperty("transitions"); serializedObject.Update(); NodeEditorGUILayout.PropertyField(_transitions); serializedObject.ApplyModifiedProperties(); }
protected override void SerializeAdditionalProperties() { _newAIBrain = serializedObject.FindProperty("newAIBrain"); serializedObject.Update(); NodeEditorGUILayout.PropertyField(_newAIBrain); serializedObject.ApplyModifiedProperties(); }
protected override void SerializeAdditionalProperties() { _numberOfHits = serializedObject.FindProperty("numberOfHits"); serializedObject.Update(); EditorGUIUtility.labelWidth = 120; NodeEditorGUILayout.PropertyField(_numberOfHits); serializedObject.ApplyModifiedProperties(); }
protected override void SerializeAdditionalProperties() { _changeDirectionOnObstacle = serializedObject.FindProperty("changeDirectionOnObstacle"); serializedObject.Update(); EditorGUIUtility.labelWidth = 170; NodeEditorGUILayout.PropertyField(_changeDirectionOnObstacle); serializedObject.ApplyModifiedProperties(); }
protected override void SerializeAdditionalProperties() { _groundedBufferDelay = serializedObject.FindProperty("groundedBufferDelay"); serializedObject.Update(); EditorGUIUtility.labelWidth = 140; NodeEditorGUILayout.PropertyField(_groundedBufferDelay); serializedObject.ApplyModifiedProperties(); }
protected override void SerializeAdditionalProperties() { _minimumDistance = serializedObject.FindProperty("minimumDistance"); serializedObject.Update(); EditorGUIUtility.labelWidth = 120; NodeEditorGUILayout.PropertyField(_minimumDistance); serializedObject.ApplyModifiedProperties(); }
public override void OnBodyGUI() { // Update serialized object's representation serializedObject.Update(); var node = target as Kernel; if (node != null) { var selectedSize = (KernelValue.KernelSize)EditorGUILayout.EnumPopup("Size", node.kernel.Size); if (selectedSize != node.kernel.Size)//user is changing the size of the kernel { Debug.Log("changing size of kernel"); node.kernel.SetKernelSize(selectedSize); } EditorGUILayout.LabelField("Kernel Matrix Values"); var kernel = node.kernel.Values; if (kernel != null) { var kernelWidth = kernel.GetLength(0); var kernelHeight = kernel.GetLength(1); for (var x = 0; x < kernelWidth; x++) { GUILayout.BeginHorizontal(); for (var y = 0; y < kernelHeight; y++) { GUILayout.BeginVertical(); kernel[y, x] = EditorGUILayout.FloatField(kernel[y, x]); GUILayout.EndVertical(); } GUILayout.EndHorizontal(); } } else { EditorGUILayout.LabelField("Kernel is Null"); } } if (GUILayout.Button("Apply")) { this.NotifyNodes(); } NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("kernel")); // Apply property modifications serializedObject.ApplyModifiedProperties(); }