Ejemplo n.º 1
0
        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
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }