Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static bool initializeCurrentEditorWindowMetadata;
- private static PropertyInfo current;
- private static FieldInfo m_ActualView;
- public static EditorWindow GetCurrentEditorWindow()
- {
- if (Utility.initializeCurrentEditorWindowMetadata == false)
- {
- Utility.initializeCurrentEditorWindowMetadata = true;
- Utility.LazyInitializeCurrentEditorWindowMetadata();
- }
- if (Utility.current == null)
- return null;
- object guiView = Utility.current.GetValue(null, null);
- if (guiView != null)
- return Utility.m_ActualView.GetValue(guiView) as EditorWindow;
- return null;
- }
- [AssemblyVerifier]
- private static void LazyInitializeCurrentEditorWindowMetadata()
- {
- Type GUIViewType = AssemblyVerifier.TryGetType(typeof(Editor).Assembly, "UnityEditor.GUIView");
- if (GUIViewType != null)
- {
- Utility.current = AssemblyVerifier.TryGetProperty(GUIViewType, "current", BindingFlags.Public | BindingFlags.Static);
- Type HostViewType = AssemblyVerifier.TryGetType(typeof(Editor).Assembly, "UnityEditor.HostView");
- if (HostViewType != null)
- Utility.m_ActualView = AssemblyVerifier.TryGetField(HostViewType, "m_ActualView", BindingFlags.NonPublic | BindingFlags.Instance);
- if (Utility.m_ActualView == null)
- Utility.current = null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement