| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- using System;
 
- using System.Collections;
 
- using System.Reflection;
 
- using UnityEditor;
 
- using UnityEngine;
 
- namespace AIPagedLod
 
- {
 
-     [InitializeOnLoad]
 
-     public class EditorMonoBehaviour
 
-     {
 
-         static EditorMonoBehaviour()
 
-         {
 
-             var type = System.Reflection.Assembly.Load("UnityEditor.dll").GetType("UnityEditor.EditorAssemblies");
 
-             var method = type.GetMethod("SubclassesOf", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(Type) }, null);
 
-             var e = method.Invoke(null, new object[] { typeof(EditorMonoBehaviour) }) as IEnumerable;
 
-             foreach (Type editorMonoBehaviourClass in e)
 
-             {
 
-                 method = editorMonoBehaviourClass.BaseType.GetMethod("OnEditorMonoBehaviour", BindingFlags.NonPublic | BindingFlags.Instance);
 
-                 if (method != null)
 
-                 {
 
-                     method.Invoke(System.Activator.CreateInstance(editorMonoBehaviourClass), new object[0]);
 
-                 }
 
-             }
 
-         }
 
-         private void OnEditorMonoBehaviour()
 
-         {
 
-             EditorApplication.update += Update;
 
-             EditorApplication.hierarchyWindowChanged += OnHierarchyWindowChanged;
 
-             EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItemOnGUI;
 
-             EditorApplication.projectWindowChanged += OnProjectWindowChanged;
 
-             EditorApplication.projectWindowItemOnGUI += ProjectWindowItemOnGUI;
 
-             EditorApplication.modifierKeysChanged += OnModifierKeysChanged;
 
-             EditorApplication.CallbackFunction function = () => OnGlobalEventHandler(Event.current);
 
-             FieldInfo info = typeof(EditorApplication).GetField("globalEventHandler", BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic);
 
-             EditorApplication.CallbackFunction functions = (EditorApplication.CallbackFunction)info.GetValue(null);
 
-             function += function;
 
-             info.SetValue(null, (object)functions);
 
-             EditorApplication.searchChanged += OnSearchChanged;
 
-             Start();
 
-         }
 
-         public virtual void Start()
 
-         { }
 
-         public virtual void Update()
 
-         { }
 
-         public virtual void OnHierarchyWindowChanged()
 
-         { }
 
-         public virtual void HierarchyWindowItemOnGUI(int instanceID, Rect selectionRect)
 
-         { }
 
-         public virtual void OnProjectWindowChanged()
 
-         { }
 
-         public virtual void ProjectWindowItemOnGUI(string guid, Rect selectionRect)
 
-         { }
 
-         public virtual void OnModifierKeysChanged()
 
-         { }
 
-         public virtual void OnGlobalEventHandler(Event e)
 
-         { }
 
-         public virtual void OnSearchChanged()
 
-         { }
 
-         public virtual void OnPlaymodeStateChanged(PlayModeState playModeState)
 
-         { }
 
-         public enum PlayModeState
 
-         {
 
-             Playing,
 
-             Paused,
 
-             Stop,
 
-             PlayingOrWillChangePlayMode
 
-         }
 
-     }
 
- }
 
 
  |