public void Render(Vector2 windowSize) { bool needsRepaint = false; EditorGUILayout.BeginVertical(); { RenderToolBar(windowSize); switch (_currentMode) { case eMode.ViewingStateMachine: { Rect area = new Rect(0.0f, kTopBorder, windowSize.x, windowSize.y - kTopBorder); RenderGridView(area); needsRepaint = NeedsRepaint(); } break; case eMode.ViewingState: { Rect position = new Rect(0.0f, 53.0f, windowSize.x, windowSize.y - 58); needsRepaint = _stateEditor.NeedsRepaint(); _stateEditor.Render(position); needsRepaint |= _stateEditor.NeedsRepaint(); } break; } } EditorGUILayout.EndVertical(); if (needsRepaint) { GetEditorWindow().DoRepaint(); } }