public override void DrawCurveOnWindow() { if (startState) { Rect rectangle = windowRectangle; rectangle.y += windowRectangle.height * .5f; rectangle.width = 1; rectangle.height = 1; BehaviourManager.DrawNodeCurve(startState.windowRectangle, rectangle, true, Color.blue); } }
private static void ShowEditor() { BehaviourManager manager = EditorWindow.GetWindow <BehaviourManager>(); manager.minSize = new Vector2(450, 450); }
public override void DrawWindow() { if (currentState == null) { EditorGUILayout.LabelField("State: "); } else { if (isCollapsed) { windowRectangle.height = 100; } isCollapsed = EditorGUILayout.Toggle("", isCollapsed); } currentState = (State)EditorGUILayout.ObjectField(currentState, typeof(State), false); if (previousState != currentState) { serializedState = null; previousState = currentState; ClearReferences(); for (int i = 0; i < currentState.transitions.Count; i++) { dependencies.Add(BehaviourManager.CreateTransitionNode(i, currentState.transitions[i], this)); } } if (currentState != null) { if (serializedState == null) { serializedState = new SerializedObject(currentState); stateActionOnUpdateList = new ReorderableList(serializedState, serializedState.FindProperty("stateActionsOnUpdate"), true, true, true, true); stateActionOnEnterList = new ReorderableList(serializedState, serializedState.FindProperty("stateActionsOnEnter"), true, true, true, true); stateActionOnExitList = new ReorderableList(serializedState, serializedState.FindProperty("stateActionsOnExit"), true, true, true, true); } if (!isCollapsed) { serializedState.Update(); HandleReorderableList(stateActionOnEnterList, "State Action On Enter"); EditorGUILayout.LabelField(""); stateActionOnEnterList.DoLayoutList(); HandleReorderableList(stateActionOnUpdateList, "State Action On Update"); EditorGUILayout.LabelField(""); stateActionOnUpdateList.DoLayoutList(); HandleReorderableList(stateActionOnExitList, "State Action On Exit"); EditorGUILayout.LabelField(""); stateActionOnExitList.DoLayoutList(); serializedState.ApplyModifiedProperties(); float standard = 350; standard += (stateActionOnUpdateList.count) * 15; windowRectangle.height = standard; } } }
public void ClearReferences() { BehaviourManager.ClearWindowsFromList(dependencies); dependencies.Clear(); }