private static void ShowInSplitView() { var selected = Selection.objects; #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(selected.Length > 0); #endif var manager = InspectorUtility.ActiveManager; if (manager == null) { manager = InspectorManager.Instance(); if (!InspectorUtility.Preferences.SetupDone && Event.current == null) { DrawGUI.OnNextBeginOnGUI(ShowInSplitView, true); return; } } var inspector = manager.LastSelectedActiveOrDefaultInspector(selected[0].IsSceneObject() ? InspectorTargetingMode.Hierarchy : InspectorTargetingMode.Project, InspectorSplittability.IsSplittable); ISplittableInspectorDrawer splittableDrawer; if (inspector == null) { splittableDrawer = PowerInspectorWindow.CreateNew(selected, true, false); } else { splittableDrawer = (ISplittableInspectorDrawer)inspector.InspectorDrawer; splittableDrawer.ShowInSplitView(selected); #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(splittableDrawer != null); Debug.Assert(selected[0].IsSceneObject() ? splittableDrawer.InspectorTargetingMode != InspectorTargetingMode.Hierarchy : splittableDrawer.InspectorTargetingMode != InspectorTargetingMode.Project); #endif } }
private static void ViewObjectInPowerInspector(MenuCommand command, bool useSplitView) { var manager = InspectorUtility.ActiveManager; if (manager == null) { manager = InspectorManager.Instance(); } var target = command.context; var gameObject = target.GameObject(); if (gameObject != null) { var inspector = manager.LastSelectedActiveOrDefaultInspector(gameObject.scene.IsValid() ? InspectorTargetingMode.Hierarchy : InspectorTargetingMode.Project); if (inspector == null) { var window = PowerInspectorWindow.CreateNew(false); inspector = window.MainView; manager.ActiveInspector = inspector; } if (useSplitView) { var splittableDrawer = inspector.InspectorDrawer as ISplittableInspectorDrawer; if (splittableDrawer != null) { splittableDrawer.ShowInSplitView(ArrayPool <Object> .CreateWithContent(gameObject)); inspector.ScrollToShow(target); return; } } else { inspector = inspector.InspectorDrawer.MainView; } inspector.RebuildDrawers(ArrayPool <Object> .CreateWithContent(gameObject), true); inspector.ScrollToShow(target); } else { var inspector = manager.LastSelectedActiveOrDefaultInspector(target.IsSceneObject() ? InspectorTargetingMode.Hierarchy : InspectorTargetingMode.Project); if (inspector == null) { var window = PowerInspectorWindow.CreateNew(false); inspector = window.MainView; manager.ActiveInspector = inspector; } if (useSplitView) { var splittableDrawer = inspector.InspectorDrawer as ISplittableInspectorDrawer; if (splittableDrawer != null) { splittableDrawer.ShowInSplitView(ArrayPool <Object> .CreateWithContent(target)); inspector.ScrollToShow(target); return; } } inspector.RebuildDrawers(ArrayPool <Object> .CreateWithContent(target), true); inspector.ScrollToShow(target); } }