class FlagMonitor extends EditorWindow { var scrollPosition:Vector2; var monitorEnabled:boolean; @MenuItem("Custom/Window/Flag Monitor") static function Init () { var window:FlagMonitor = EditorWindow.GetWindow(FlagMonitor); window.Show(); } function OnGUI() { if (!Application.isPlaying) { GUILayout.Label("Game stopped"); monitorEnabled = false; } else { var isChengeFlag:boolean = false; var flagCtrl:FlagController = FlagController.GetFlagCtrl(); EditorGUILayout.BeginVertical(GUILayout.MinWidth(290),GUILayout.MaxWidth(290)); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Index", GUILayout.MinWidth(50),GUILayout.MaxWidth(50)); GUILayout.Label("0", GUILayout.MinWidth(10)); GUILayout.Label("1", GUILayout.MinWidth(10)); GUILayout.Label("2", GUILayout.MinWidth(10)); GUILayout.Label("3", GUILayout.MinWidth(10)); GUILayout.Label("4", GUILayout.MinWidth(10)); GUILayout.Label("5", GUILayout.MinWidth(10)); GUILayout.Label("6", GUILayout.MinWidth(10)); GUILayout.Label("7", GUILayout.MinWidth(10)); GUILayout.Label("8", GUILayout.MinWidth(10)); GUILayout.Label("9", GUILayout.MinWidth(10)); GUILayout.Label("a", GUILayout.MinWidth(10)); GUILayout.Label("b", GUILayout.MinWidth(10)); GUILayout.Label("c", GUILayout.MinWidth(10)); GUILayout.Label("d", GUILayout.MinWidth(10)); GUILayout.Label("e", GUILayout.MinWidth(10)); GUILayout.Label("f", GUILayout.MinWidth(10)); EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); scrollPosition = GUILayout.BeginScrollView(scrollPosition); EditorGUILayout.BeginVertical(GUILayout.MinWidth(300),GUILayout.MaxWidth(300)); for (var i:int = 0; i < flagCtrl.flags.Count; i++) { if (i % 16 == 0) { EditorGUILayout.BeginHorizontal(); GUILayout.Label(String.Format("{0:00000}", i)); } var flg:boolean = EditorGUILayout.Toggle(flagCtrl.flags[i], GUILayout.MaxWidth(10)); if (flg != flagCtrl.flags[i]) { isChengeFlag = true; flagCtrl.flags.Set(i, flg); } if (i % 16 == 15) { EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); if (isChengeFlag) { FlagController.onChangeFlags(); } } } }