public override void DrawCommandGUI() { serializedObject.Update(); Call t = target as Call; Flowchart flowchart = null; if (targetFlowchartProp.objectReferenceValue == null) { flowchart = (Flowchart)t.GetFlowchart(); } else { flowchart = targetFlowchartProp.objectReferenceValue as Flowchart; } EditorGUILayout.PropertyField(targetFlowchartProp); if (flowchart != null) { BlockEditor.BlockField(targetBlockProp, new GUIContent("Target Block", "Block to call"), new GUIContent("<None>"), flowchart); EditorGUILayout.PropertyField(startLabelProp); EditorGUILayout.PropertyField(startIndexProp); } EditorGUILayout.PropertyField(callModeProp); serializedObject.ApplyModifiedProperties(); }
public override void DrawCommandGUI() { var flowchart = FlowchartWindow.GetFlowchart(); if (flowchart == null) { return; } serializedObject.Update(); EditorGUILayout.PropertyField(textProp); EditorGUILayout.PropertyField(descriptionProp); BlockEditor.BlockField(targetBlockProp, new GUIContent("Target Block", "Block to call when option is selected"), new GUIContent("<None>"), flowchart); EditorGUILayout.PropertyField(hideIfVisitedProp); EditorGUILayout.PropertyField(interactableProp); EditorGUILayout.PropertyField(setMenuDialogProp); EditorGUILayout.PropertyField(hideThisOptionProp); serializedObject.ApplyModifiedProperties(); }
public override void DrawCommandGUI() { var flowchart = FlowchartWindow.GetFlowchart(); if (flowchart == null) { return; } serializedObject.Update(); EditorGUILayout.PropertyField(durationProp); BlockEditor.BlockField(targetBlockProp, new GUIContent("Target Block", "Block to call when timer expires"), new GUIContent("<None>"), flowchart); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { BlockInspector blockInspector = target as BlockInspector; if (blockInspector.block == null) { return; } var block = blockInspector.block; if (block == null) { return; } var flowchart = (Flowchart)block.GetFlowchart(); if (flowchart.SelectedBlocks.Count > 1) { GUILayout.Label("Multiple blocks selected"); return; } if (activeBlockEditor == null || !block.Equals(activeBlockEditor.target)) { DestroyImmediate(activeBlockEditor); activeBlockEditor = Editor.CreateEditor(block) as BlockEditor; } activeBlockEditor.DrawBlockName(flowchart); UpdateWindowHeight(); float width = EditorGUIUtility.currentViewWidth; float height = windowHeight; // Using a custom rect area to get the correct 5px indent for the scroll views Rect blockRect = new Rect(5, topPanelHeight, width - 5, height + 10); GUILayout.BeginArea(blockRect); blockScrollPos = GUILayout.BeginScrollView(blockScrollPos, GUILayout.Height(flowchart.BlockViewHeight)); activeBlockEditor.DrawBlockGUI(flowchart); GUILayout.EndScrollView(); Command inspectCommand = null; if (flowchart.SelectedCommands.Count == 1) { inspectCommand = flowchart.SelectedCommands[0]; } if (Application.isPlaying && inspectCommand != null && !inspectCommand.ParentBlock.Equals(block)) { GUILayout.EndArea(); Repaint(); return; } // Only change the activeCommand at the start of the GUI call sequence if (Event.current.type == EventType.Layout) { activeCommand = inspectCommand; } DrawCommandUI(flowchart, inspectCommand); }