public void Render() { Vector2 viewport = CalculateViewport(); GUI.Box(new Rect(0, Position.y, MyFSMEditor.position.width, this.MyFSMEditor.position.height - Position.y), ""); ScrollPos = GUI.BeginScrollView(new Rect(0, Position.y, MyFSMEditor.position.width, this.MyFSMEditor.position.height - Position.y), ScrollPos, new Rect(0, 0, viewport.x + Position.y + 100, viewport.y + Position.y + 100)); MyFSMEditor.BeginWindows(); foreach (FSMEditorState editorState in MyFSMEditor.EditorStates) { editorState.Render(); } MyFSMEditor.EndWindows(); foreach (var fromEditorState in MyFSMEditor.EditorStates) { int i = 0; foreach (var transition in fromEditorState.State.Transitions) { if (transition.ToState != "") { if (MyFSMEditor.EditorStatesIndex.ContainsKey(transition.ToState)) { var toEditorState = MyFSMEditor.EditorStatesIndex[transition.ToState]; FSMLineRender.DrawTransition(fromEditorState.GetEventRect(i, toEditorState), toEditorState.GetHeaderRect(fromEditorState)); } } i++; } } FSMDragStateControl.Render(); GUI.EndScrollView(); }