Пример #1
0
        public static void ChangeEditMode(EditMode.SceneViewEditMode mode, Bounds bounds, Editor caller)
        {
            Editor editor = InternalEditorUtility.GetObjectFromInstanceID(EditMode.ownerID) as Editor;

            EditMode.editMode = mode;
            EditMode.ownerID  = ((mode == EditMode.SceneViewEditMode.None) ? 0 : caller.GetInstanceID());
            if (EditMode.onEditModeEndDelegate != null)
            {
                EditMode.onEditModeEndDelegate(editor);
            }
            if (EditMode.editMode != EditMode.SceneViewEditMode.None && EditMode.onEditModeStartDelegate != null)
            {
                EditMode.onEditModeStartDelegate(caller, EditMode.editMode);
            }
            EditMode.EditModeChanged(bounds);
            InspectorWindow.RepaintAllInspectors();
        }
 public void OnSceneGUI()
 {
     if (this.sceneViewEditing)
     {
         EditMode.SceneViewEditMode editMode = EditMode.editMode;
         if (editMode != EditMode.SceneViewEditMode.ReflectionProbeBox)
         {
             if (editMode == EditMode.SceneViewEditMode.ReflectionProbeOrigin)
             {
                 this.DoOriginEditing();
             }
         }
         else
         {
             this.DoBoxEditing();
         }
     }
 }
Пример #3
0
 public void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode editMode)
 {
     if (GridPaintingState.gridBrush != null && PaintableGrid.InGridEditMode() && GridPaintingState.activeBrushEditor != null)
     {
         GridBrushBase.Tool tool = PaintableGrid.EditModeToBrushTool(editMode);
         GridPaintingState.activeBrushEditor.OnToolActivated(tool);
         this.m_PreviousToolActivatedEditor = GridPaintingState.activeBrushEditor;
         this.m_PreviousToolActivated       = tool;
         for (int i = 0; i < GridPaintPaletteWindow.Styles.sceneViewEditModes.Length; i++)
         {
             if (GridPaintPaletteWindow.Styles.sceneViewEditModes[i] == editMode)
             {
                 Cursor.SetCursor(GridPaintPaletteWindow.Styles.mouseCursorTextures[i], (!(GridPaintPaletteWindow.Styles.mouseCursorTextures[i] != null)) ? Vector2.zero : GridPaintPaletteWindow.Styles.mouseCursorOSHotspot[(int)SystemInfo.operatingSystemFamily], CursorMode.Auto);
                 break;
             }
         }
     }
     base.Repaint();
 }
Пример #4
0
 static EditMode()
 {
     EditMode.s_ToolBeforeEnteringEditMode = Tool.Move;
     EditMode.ownerID  = InspectorState.GetInt("EditModeOwner", EditMode.ownerID);
     EditMode.editMode = (EditMode.SceneViewEditMode)InspectorState.GetInt("EditModeState", (int)EditMode.editMode);
     EditMode.toolBeforeEnteringEditMode = (Tool)InspectorState.GetInt("EditModePrevTool", (int)EditMode.toolBeforeEnteringEditMode);
     if (EditMode.s_Debug)
     {
         Debug.Log(string.Concat(new object[]
         {
             "EditMode static constructor: ",
             EditMode.ownerID,
             " ",
             EditMode.editMode,
             " ",
             EditMode.toolBeforeEnteringEditMode
         }));
     }
 }
Пример #5
0
        internal static void DrawToolBarButton <TEnum>(
            TEnum button, Editor owner,
            Dictionary <TEnum, EditMode.SceneViewEditMode> toolbarMode,
            Dictionary <TEnum, GUIContent> toolbarContent,
            params GUILayoutOption[] options
            )
            where TEnum : struct, IConvertible
        {
            var  intButton = (int)(object)button;
            bool enabled   = toolbarMode[button] == EditMode.editMode;

            EditorGUI.BeginChangeCheck();
            enabled = GUILayout.Toggle(enabled, toolbarContent[button], EditorStyles.miniButton, options);
            if (EditorGUI.EndChangeCheck())
            {
                EditMode.SceneViewEditMode targetMode = EditMode.editMode == toolbarMode[button] ? EditMode.SceneViewEditMode.None : toolbarMode[button];
                EditMode.ChangeEditMode(targetMode, GetBoundsGetter(owner)(), owner);
            }
        }
Пример #6
0
 static EditMode()
 {
     EditMode.s_ToolBeforeEnteringEditMode = Tool.Move;
     EditMode.ownerID  = SessionState.GetInt("EditModeOwner", EditMode.ownerID);
     EditMode.editMode = (EditMode.SceneViewEditMode)SessionState.GetInt("EditModeState", (int)EditMode.editMode);
     EditMode.toolBeforeEnteringEditMode = (Tool)SessionState.GetInt("EditModePrevTool", (int)EditMode.toolBeforeEnteringEditMode);
     Selection.selectionChanged          = (Action)Delegate.Combine(Selection.selectionChanged, new Action(EditMode.OnSelectionChange));
     if (EditMode.s_Debug)
     {
         Debug.Log(string.Concat(new object[]
         {
             "EditMode static constructor: ",
             EditMode.ownerID,
             " ",
             EditMode.editMode,
             " ",
             EditMode.toolBeforeEnteringEditMode
         }));
     }
 }
        private void DoToolbar()
        {
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            GUILayout.FlexibleSpace();
            GUI.changed = false;
            EditMode.SceneViewEditMode editMode = EditMode.editMode;
            EditorGUI.BeginChangeCheck();
            EditMode.DoInspectorToolbar(ReflectionProbeEditor.Styles.sceneViewEditModes, ReflectionProbeEditor.Styles.toolContents, this.GetBounds(), this);
            if (EditorGUI.EndChangeCheck())
            {
                ReflectionProbeEditor.s_LastInteractedEditor = this;
            }
            if (editMode != EditMode.editMode)
            {
                EditMode.SceneViewEditMode editMode2 = EditMode.editMode;
                if (editMode2 == EditMode.SceneViewEditMode.ReflectionProbeOrigin)
                {
                    this.UpdateOldLocalSpace();
                }
                if (Toolbar.get != null)
                {
                    Toolbar.get.Repaint();
                }
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.BeginVertical(EditorStyles.helpBox, new GUILayoutOption[0]);
            string text = ReflectionProbeEditor.Styles.baseSceneEditingToolText;

            if (this.sceneViewEditing)
            {
                int num = ArrayUtility.IndexOf <EditMode.SceneViewEditMode>(ReflectionProbeEditor.Styles.sceneViewEditModes, EditMode.editMode);
                if (num >= 0)
                {
                    text = ReflectionProbeEditor.Styles.toolNames[num].text;
                }
            }
            GUILayout.Label(text, ReflectionProbeEditor.Styles.richTextMiniLabel, new GUILayoutOption[0]);
            GUILayout.EndVertical();
            EditorGUILayout.Space();
        }
Пример #8
0
        public void StartEditing(EditMode.SceneViewEditMode mode, UnityEditor.Editor caller)
        {
            if (mode == EditMode.SceneViewEditMode.None || _caller == caller)
            {
                return;
            }
            Type editorType;

            if (!_editors.TryGetValue(mode, out editorType))
            {
                if (SPSettings.Current.DebugMode)
                {
                    Debug.LogErrorFormat("Editor for mode {0} was not found!", mode);
                }
                return;
            }
            _caller = caller;
            _editor = UnityEditor.Editor.CreateEditor(
                SplineBridge.GetUnserializedSpline(caller.serializedObject), editorType);
            editorType            = _editor.GetType();
            _onSceneGUIMethodInfo = editorType.GetMethod("OnSceneGUI",
                                                         BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.InvokeMethod);
            if (_onSceneGUIMethodInfo == null)
            {
                Debug.LogErrorFormat(
                    "Editor {0} has no method OnSceneGUI for view updating. Editing can not be processed.",
                    _editor.GetType().Name);
                _editor = null;
                _caller = null;
                return;
            }

            SceneView.onSceneGUIDelegate += OnSceneGuiDelegate;
            Tools.hidden = true;
            if (SPSettings.Current.DebugMode)
            {
                Debug.LogFormat("Editor {0} enabled for editing {1}",
                                _editor.GetType().Name, _editor.target);
            }
        }
        private void DoToolbar()
        {
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            GUILayout.FlexibleSpace();
            GUI.changed = false;
            EditMode.SceneViewEditMode editMode = EditMode.editMode;
            EditorGUI.BeginChangeCheck();
            EditMode.DoInspectorToolbar(Styles.sceneViewEditModes, Styles.toolContents, this.GetBounds(), this);
            if (EditorGUI.EndChangeCheck())
            {
                s_LastInteractedEditor = this;
            }
            if (editMode != EditMode.editMode)
            {
                if (EditMode.editMode == EditMode.SceneViewEditMode.ReflectionProbeOrigin)
                {
                    this.m_OldTransformPosition = ((ReflectionProbe)this.target).transform.position;
                }
                if (Toolbar.get != null)
                {
                    Toolbar.get.Repaint();
                }
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.BeginVertical(EditorStyles.helpBox, new GUILayoutOption[0]);
            string baseSceneEditingToolText = Styles.baseSceneEditingToolText;

            if (this.sceneViewEditing)
            {
                int index = ArrayUtility.IndexOf <EditMode.SceneViewEditMode>(Styles.sceneViewEditModes, EditMode.editMode);
                if (index >= 0)
                {
                    baseSceneEditingToolText = Styles.toolNames[index].text;
                }
            }
            GUILayout.Label(baseSceneEditingToolText, Styles.richTextMiniLabel, new GUILayoutOption[0]);
            GUILayout.EndVertical();
            EditorGUILayout.Space();
        }
Пример #10
0
        public static GridBrushBase.Tool EditModeToBrushTool(EditMode.SceneViewEditMode editMode)
        {
            GridBrushBase.Tool result;
            switch (editMode)
            {
            case EditMode.SceneViewEditMode.GridPainting:
                result = GridBrushBase.Tool.Paint;
                break;

            case EditMode.SceneViewEditMode.GridPicking:
                result = GridBrushBase.Tool.Pick;
                break;

            case EditMode.SceneViewEditMode.GridEraser:
                result = GridBrushBase.Tool.Erase;
                break;

            case EditMode.SceneViewEditMode.GridFloodFill:
                result = GridBrushBase.Tool.FloodFill;
                break;

            case EditMode.SceneViewEditMode.GridBox:
                result = GridBrushBase.Tool.Box;
                break;

            case EditMode.SceneViewEditMode.GridSelect:
                result = GridBrushBase.Tool.Select;
                break;

            case EditMode.SceneViewEditMode.GridMove:
                result = GridBrushBase.Tool.Move;
                break;

            default:
                result = GridBrushBase.Tool.Paint;
                break;
            }
            return(result);
        }
 public void OnSceneGUI()
 {
     if (this.sceneViewEditing)
     {
         if (this.m_BoundingBoxMode.intValue != 2)
         {
             EditMode.QuitEditMode();
         }
         EditMode.SceneViewEditMode editMode = EditMode.editMode;
         if (editMode != EditMode.SceneViewEditMode.LightProbeProxyVolumeBox)
         {
             if (editMode == EditMode.SceneViewEditMode.LightProbeProxyVolumeOrigin)
             {
                 this.DoOriginEditing();
             }
         }
         else
         {
             this.DoBoxEditing();
         }
     }
 }
Пример #12
0
        public void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode editMode)
        {
            if (GridPaintingState.gridBrush != null && PaintableGrid.InGridEditMode() && GridPaintingState.activeBrushEditor != null)
            {
                GridBrushBase.Tool tool = PaintableGrid.EditModeToBrushTool(editMode);
                GridPaintingState.activeBrushEditor.OnToolActivated(tool);
                m_PreviousToolActivatedEditor = GridPaintingState.activeBrushEditor;
                m_PreviousToolActivated       = tool;

                for (int i = 0; i < k_SceneViewEditModes.Length; ++i)
                {
                    if (k_SceneViewEditModes[i] == editMode)
                    {
                        Cursor.SetCursor(MouseStyles.mouseCursorTextures[i],
                                         MouseStyles.mouseCursorTextures[i] != null ? MouseStyles.mouseCursorOSHotspot[(int)SystemInfo.operatingSystemFamily] : Vector2.zero,
                                         CursorMode.Auto);
                        break;
                    }
                }
            }

            Repaint();
        }
Пример #13
0
        private static void DoInspectorToolbar(EditMode.SceneViewEditMode[] modes, GUIContent[] guiContents, Func <Bounds> getBoundsOfTargets, IToolModeOwner owner)
        {
            EditMode.DetectMainToolChange();
            int instanceID = owner.GetInstanceID();
            int num        = ArrayUtility.IndexOf <EditMode.SceneViewEditMode>(modes, EditMode.editMode);

            if (EditMode.ownerID != instanceID)
            {
                num = -1;
            }
            EditorGUI.BeginChangeCheck();
            int num2 = num;

            using (new EditorGUI.DisabledScope(!owner.areToolModesAvailable))
            {
                num2 = GUILayout.Toolbar(num, guiContents, EditMode.Styles.multiButtonStyle, new GUILayoutOption[0]);
            }
            if (EditorGUI.EndChangeCheck())
            {
                EditMode.SceneViewEditMode mode = (num2 != num) ? modes[num2] : EditMode.SceneViewEditMode.None;
                EditMode.ChangeEditMode(mode, (getBoundsOfTargets != null) ? getBoundsOfTargets() : owner.GetWorldBoundsOfTargets(), owner);
            }
        }
 private void DoToolbar()
 {
     using (new EditorGUI.DisabledScope(this.m_BoundingBoxMode.intValue != 2))
     {
         GUILayout.BeginHorizontal(new GUILayoutOption[0]);
         GUILayout.FlexibleSpace();
         EditMode.SceneViewEditMode editMode = EditMode.editMode;
         EditorGUI.BeginChangeCheck();
         EditMode.DoInspectorToolbar(LightProbeProxyVolumeEditor.Styles.sceneViewEditModes, LightProbeProxyVolumeEditor.Styles.toolContents, this.GetGlobalBounds(), this);
         if (EditorGUI.EndChangeCheck())
         {
             LightProbeProxyVolumeEditor.s_LastInteractedEditor = this;
         }
         if (editMode != EditMode.editMode)
         {
             if (Toolbar.get != null)
             {
                 Toolbar.get.Repaint();
             }
         }
         GUILayout.FlexibleSpace();
         GUILayout.EndHorizontal();
         GUILayout.BeginVertical(EditorStyles.helpBox, new GUILayoutOption[0]);
         string text = LightProbeProxyVolumeEditor.Styles.baseSceneEditingToolText;
         if (this.sceneViewEditing)
         {
             int num = ArrayUtility.IndexOf <EditMode.SceneViewEditMode>(LightProbeProxyVolumeEditor.Styles.sceneViewEditModes, EditMode.editMode);
             if (num >= 0)
             {
                 text = LightProbeProxyVolumeEditor.Styles.toolNames[num].text;
             }
         }
         GUILayout.Label(text, LightProbeProxyVolumeEditor.Styles.richTextMiniLabel, new GUILayoutOption[0]);
         GUILayout.EndVertical();
         EditorGUILayout.Space();
     }
 }
Пример #15
0
 public static void DoInspectorToolbar(EditMode.SceneViewEditMode[] modes, GUIContent[] guiContents, Bounds bounds, Editor caller)
 {
     if (!EditorUtility.IsPersistent(caller.target))
     {
         EditMode.DetectMainToolChange();
         if (EditMode.s_ToolbarBaseStyle == null)
         {
             EditMode.s_ToolbarBaseStyle = "Command";
         }
         int instanceID = caller.GetInstanceID();
         int num        = ArrayUtility.IndexOf <EditMode.SceneViewEditMode>(modes, EditMode.editMode);
         if (EditMode.ownerID != instanceID)
         {
             num = -1;
         }
         EditorGUI.BeginChangeCheck();
         int num2 = GUILayout.Toolbar(num, guiContents, EditMode.s_ToolbarBaseStyle, new GUILayoutOption[0]);
         if (EditorGUI.EndChangeCheck())
         {
             EditMode.SceneViewEditMode mode = (num2 != num) ? modes[num2] : EditMode.SceneViewEditMode.None;
             EditMode.ChangeEditMode(mode, bounds, caller);
         }
     }
 }
Пример #16
0
        private static void DoEditModeInspectorModeButton(EditMode.SceneViewEditMode mode, string label, GUIContent icon, Func <Bounds> getBoundsOfTargets, IToolModeOwner owner)
        {
            EditMode.DetectMainToolChange();
            Rect       controlRect = EditorGUILayout.GetControlRect(true, 23f, EditMode.Styles.singleButtonStyle, new GUILayoutOption[0]);
            Rect       position    = new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, 33f, 23f);
            GUIContent content     = new GUIContent(label);
            Vector2    vector      = GUI.skin.label.CalcSize(content);
            Rect       position2   = new Rect(position.xMax + 5f, controlRect.yMin + (controlRect.height - vector.y) * 0.5f, vector.x, controlRect.height);
            int        instanceID  = owner.GetInstanceID();
            bool       value       = EditMode.editMode == mode && EditMode.ownerID == instanceID;

            EditorGUI.BeginChangeCheck();
            bool flag = false;

            using (new EditorGUI.DisabledScope(!owner.areToolModesAvailable))
            {
                flag = GUI.Toggle(position, value, icon, EditMode.Styles.singleButtonStyle);
                GUI.Label(position2, label);
            }
            if (EditorGUI.EndChangeCheck())
            {
                EditMode.ChangeEditMode((!flag) ? EditMode.SceneViewEditMode.None : mode, (getBoundsOfTargets != null) ? getBoundsOfTargets() : owner.GetWorldBoundsOfTargets(), owner);
            }
        }
Пример #17
0
 internal static void DoEditModeInspectorModeButton(EditMode.SceneViewEditMode mode, string label, GUIContent icon, IToolModeOwner owner)
 {
     EditMode.DoEditModeInspectorModeButton(mode, label, icon, null, owner);
 }
Пример #18
0
 public static void DoEditModeInspectorModeButton(EditMode.SceneViewEditMode mode, string label, GUIContent icon, Func <Bounds> getBoundsOfTargets, Editor caller)
 {
     EditMode.DoEditModeInspectorModeButton(mode, label, icon, getBoundsOfTargets, caller);
 }
Пример #19
0
 public static void DoEditModeInspectorModeButton(EditMode.SceneViewEditMode mode, string label, GUIContent icon, Bounds bounds, Editor caller)
 {
     EditMode.DoEditModeInspectorModeButton(mode, label, icon, () => bounds, caller);
 }
Пример #20
0
 private static void ChangeEditMode(EditMode.SceneViewEditMode mode, Bounds bounds, Editor caller)
 {
   Editor objectFromInstanceId = InternalEditorUtility.GetObjectFromInstanceID(EditMode.ownerID) as Editor;
   EditMode.editMode = mode;
   EditMode.ownerID = mode == EditMode.SceneViewEditMode.None ? 0 : caller.GetInstanceID();
   if (EditMode.onEditModeEndDelegate != null)
     EditMode.onEditModeEndDelegate(objectFromInstanceId);
   if (EditMode.editMode != EditMode.SceneViewEditMode.None && EditMode.onEditModeStartDelegate != null)
     EditMode.onEditModeStartDelegate(caller, EditMode.editMode);
   EditMode.EditModeChanged(bounds);
   InspectorWindow.RepaintAllInspectors();
 }
 private void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode editMode)
 {
     UpdateCache();
 }
Пример #22
0
 public static bool GetEditMode(EditMode.SceneViewEditMode mode)
 {
     return(EditMode.editMode == mode);
 }
Пример #23
0
 public static void SetEditMode(EditMode.SceneViewEditMode mode, bool value, Editor caller)
 {
     SetEditMode(mode, value, caller, new Bounds(Vector3.negativeInfinity, Vector3.positiveInfinity));
 }
Пример #24
0
 internal static void ChangeEditMode(EditMode.SceneViewEditMode mode, IToolModeOwner owner)
 {
     EditMode.ChangeEditMode(mode, owner.GetWorldBoundsOfTargets(), owner);
 }
 private bool IsLightProbeVolumeProxyEditMode(EditMode.SceneViewEditMode editMode)
 {
     return(editMode == EditMode.SceneViewEditMode.LightProbeProxyVolumeBox || editMode == EditMode.SceneViewEditMode.LightProbeProxyVolumeOrigin);
 }
Пример #26
0
 public static void ChangeEditMode(EditMode.SceneViewEditMode mode, Bounds bounds, Editor caller)
 {
     EditMode.ChangeEditMode(mode, bounds, caller);
 }
Пример #27
0
		static EditMode()
		{
			EditMode.s_ToolBeforeEnteringEditMode = Tool.Move;
			EditMode.ownerID = InspectorState.GetInt("EditModeOwner", EditMode.ownerID);
			EditMode.editMode = (EditMode.SceneViewEditMode)InspectorState.GetInt("EditModeState", (int)EditMode.editMode);
			EditMode.toolBeforeEnteringEditMode = (Tool)InspectorState.GetInt("EditModePrevTool", (int)EditMode.toolBeforeEnteringEditMode);
			if (EditMode.s_Debug)
			{
				Debug.Log(string.Concat(new object[]
				{
					"EditMode static constructor: ",
					EditMode.ownerID,
					" ",
					EditMode.editMode,
					" ",
					EditMode.toolBeforeEnteringEditMode
				}));
			}
		}
Пример #28
0
 private bool IsReflectionProbeEditMode(EditMode.SceneViewEditMode editMode)
 {
     return(editMode == EditMode.SceneViewEditMode.ReflectionProbeBox || editMode == EditMode.SceneViewEditMode.ReflectionProbeOrigin);
 }
Пример #29
0
 private static bool IsLineRendererEditMode(EditMode.SceneViewEditMode editMode)
 {
     return(editMode == EditMode.SceneViewEditMode.LineRendererEdit || editMode == EditMode.SceneViewEditMode.LineRendererCreate);
 }
Пример #30
0
 public static bool IsReflectionProbeEditMode(EditMode.SceneViewEditMode editMode)
 {
     return(editMode == EditMode.SceneViewEditMode.ReflectionProbeBox || editMode == EditMode.SceneViewEditMode.Collider || editMode == EditMode.SceneViewEditMode.GridBox ||
            editMode == EditMode.SceneViewEditMode.ReflectionProbeOrigin);
 }
Пример #31
0
 static EditMode()
 {
   EditMode.ownerID = SessionState.GetInt("EditModeOwner", EditMode.ownerID);
   EditMode.editMode = (EditMode.SceneViewEditMode) SessionState.GetInt("EditModeState", (int) EditMode.editMode);
   EditMode.toolBeforeEnteringEditMode = (Tool) SessionState.GetInt("EditModePrevTool", (int) EditMode.toolBeforeEnteringEditMode);
   Selection.selectionChanged += new System.Action(EditMode.OnSelectionChange);
   if (!EditMode.s_Debug)
     return;
   Debug.Log((object) ("EditMode static constructor: " + (object) EditMode.ownerID + " " + (object) EditMode.editMode + " " + (object) EditMode.toolBeforeEnteringEditMode));
 }