#ifUNITY_EDITORusingUnityEditor;usingUnityEngine;[InitializeOnLoad]publicstaticclassSceneViewGameModeToggle{staticboolisGameMode=false;staticSceneViewGameModeToggle(){SceneView.duringSceneGui+=OnSceneGUI;}staticvoidOnSceneGUI(SceneViewsceneView){Evente=Event.current;if(e.type==EventType.KeyDown&&e.keyCode==KeyCode.G){ToggleGameMode(sceneView);e.Use();// 이벤트 소비}}staticvoidToggleGameMode(SceneViewsceneView){isGameMode=!isGameMode;// Gizmo on/offsceneView.drawGizmos=!isGameMode;// Selection outline / wireframeTools.hidden=isGameMode;// Scene 아이콘 (라이트, 카메라 등)AnnotationUtility.SetIconState(isGameMode?0:1);SceneView.RepaintAll();}}/// <summary>/// 내부 API (아이콘 표시 제어)/// </summary>staticclassAnnotationUtility{staticSystem.TypeannotationUtilityType;staticSystem.Reflection.MethodInfosetIconEnabledMethod;staticAnnotationUtility(){annotationUtilityType=typeof(Editor).Assembly.GetType("UnityEditor.AnnotationUtility");setIconEnabledMethod=annotationUtilityType.GetMethod("SetIconEnabled",System.Reflection.BindingFlags.Static|System.Reflection.BindingFlags.NonPublic);}publicstaticvoidSetIconState(intenabled){varannotations=annotationUtilityType.GetMethod("GetAnnotations",System.Reflection.BindingFlags.Static|System.Reflection.BindingFlags.NonPublic).Invoke(null,null)asSystem.Array;foreach(varannotationinannotations){varclassId=(int)annotation.GetType().GetField("classID").GetValue(annotation);varscriptClass=(string)annotation.GetType().GetField("scriptClass").GetValue(annotation);setIconEnabledMethod.Invoke(null,newobject[]{classId,scriptClass,enabled});}}}#endif