コード例 #1
0
 private static void EditorSceneManagerOnSceneOpened(Scene scene, OpenSceneMode mode)
 {
     if (mode == OpenSceneMode.Single)
     {
         SceneVisibilityState.isolation = false;
     }
     if (mode == OpenSceneMode.Additive)
     {
         //make sure added scenes are isolated when opened if main stage is isolated
         if (StageNavigationManager.instance.currentStage is MainStage)
         {
             Undo.ClearUndo(SceneVisibilityState.GetInstance());
         }
     }
 }
コード例 #2
0
 private static void EditorSceneManagerOnSceneOpened(Scene scene, OpenSceneMode mode)
 {
     if (mode == OpenSceneMode.Single)
     {
         SceneVisibilityState.isolation = false;
     }
     if (mode == OpenSceneMode.Additive)
     {
         //make sure added scenes are isolated when opened if main stage is isolated
         if (!StageNavigationManager.instance.currentItem.isPrefabStage)
         {
             Undo.ClearUndo(SceneVisibilityState.GetInstance());
         }
     }
     instance.VisibilityChanged();
     instance.PickableContentChanged();
 }
コード例 #3
0
        static bool CreateAnimation(GameObject gameObject, Object[] frames, ShowFileDialogDelegate saveFileDialog)
        {
            saveFileDialog = saveFileDialog ?? EditorUtility.SaveFilePanelInProject;

            // Use same name compare as when we sort in the backend: See AssetDatabase.cpp: SortChildren
            System.Array.Sort(frames, (a, b) => EditorUtility.NaturalCompare(a.name, b.name));

            Animator animator = AnimationWindowUtility.EnsureActiveAnimationPlayer(gameObject)
                ? AnimationWindowUtility.GetClosestAnimatorInParents(gameObject.transform)
                : null;

            bool createSuccess = animator != null;

            if (animator != null)
            {
                // Go forward with presenting user a save clip dialog
                string message          = string.Format(SpriteUtilityStrings.saveAnimDialogMessage.text, gameObject.name);
                string newClipDirectory = ProjectWindowUtil.GetActiveFolderPath();
                string newClipPath      = saveFileDialog(SpriteUtilityStrings.saveAnimDialogTitle.text, SpriteUtilityStrings.saveAnimDialogName.text, "anim", message, newClipDirectory);

                if (string.IsNullOrEmpty(newClipPath))
                {
                    Undo.ClearUndo(animator);
                    Object.DestroyImmediate(animator);
                    return(false);
                }
                else
                {
                    AnimationClip newClip = AnimationWindowUtility.CreateNewClipAtPath(newClipPath);
                    if (newClip != null)
                    {
                        AddSpriteAnimationToClip(newClip, frames);
                        createSuccess = AnimationWindowUtility.AddClipToAnimatorComponent(animator, newClip);
                    }
                }
            }

            if (createSuccess == false)
            {
                Debug.LogError(SpriteUtilityStrings.failedToCreateAnimationError.text);
            }

            return(createSuccess);
        }
コード例 #4
0
 private void RefreshRects()
 {
     if (this.m_RectsCache)
     {
         this.m_RectsCache.ClearAll();
         Undo.ClearUndo(this.m_RectsCache);
         UnityEngine.Object.DestroyImmediate(this.m_RectsCache);
     }
     this.m_RectsCache = ScriptableObject.CreateInstance <SpriteRectCache>();
     if (this.m_TextureImporterSprites != null)
     {
         if (this.multipleSprites)
         {
             for (int i = 0; i < this.m_TextureImporterSprites.arraySize; i++)
             {
                 SpriteRect spriteRect = new SpriteRect();
                 spriteRect.LoadFromSerializedProperty(this.m_TextureImporterSprites.GetArrayElementAtIndex(i));
                 this.m_RectsCache.AddRect(spriteRect);
                 EditorUtility.DisplayProgressBar(SpriteEditorWindow.SpriteEditorWindowStyles.loadProgressTitle.text, string.Format(SpriteEditorWindow.SpriteEditorWindowStyles.loadContentText.text, i, this.m_TextureImporterSprites.arraySize), (float)i / (float)this.m_TextureImporterSprites.arraySize);
             }
         }
         else if (this.validSprite)
         {
             SpriteRect spriteRect2 = new SpriteRect();
             spriteRect2.rect               = new Rect(0f, 0f, (float)this.m_Texture.width, (float)this.m_Texture.height);
             spriteRect2.name               = this.m_OriginalTexture.name;
             spriteRect2.alignment          = (SpriteAlignment)this.m_TextureImporterSO.FindProperty("m_Alignment").intValue;
             spriteRect2.border             = this.m_TextureImporter.spriteBorder;
             spriteRect2.pivot              = SpriteEditorUtility.GetPivotValue(spriteRect2.alignment, this.m_TextureImporter.spritePivot);
             spriteRect2.tessellationDetail = this.m_TextureImporterSO.FindProperty("m_SpriteTessellationDetail").floatValue;
             SerializedProperty outlineSP = this.m_TextureImporterSO.FindProperty("m_SpriteSheet.m_Outline");
             spriteRect2.outline = SpriteRect.AcquireOutline(outlineSP);
             SerializedProperty outlineSP2 = this.m_TextureImporterSO.FindProperty("m_SpriteSheet.m_PhysicsShape");
             spriteRect2.physicsShape = SpriteRect.AcquireOutline(outlineSP2);
             this.m_RectsCache.AddRect(spriteRect2);
         }
         EditorUtility.ClearProgressBar();
         if (this.m_RectsCache.Count > 0)
         {
             this.selectedSpriteRect = this.m_RectsCache.RectAt(0);
         }
     }
 }
コード例 #5
0
 private static void EditorSceneManagerOnSceneOpened(Scene scene, OpenSceneMode mode)
 {
     if (mode == OpenSceneMode.Single)
     {
         //force out of isolation when loading single
         SceneVisibilityState.mainStageIsolated = false;
     }
     if (mode == OpenSceneMode.Additive)
     {
         //make sure added scenes are isolated when opened if main stage is isolated
         if (!StageNavigationManager.instance.currentItem.isPrefabStage)
         {
             Undo.ClearUndo(SceneVisibilityState.GetInstance());
             if (SceneVisibilityState.mainStageIsolated)
             {
                 SceneVisibilityState.SetSceneIsolation(scene, true);
             }
         }
     }
     instance.VisibilityChanged();
 }
コード例 #6
0
 private void OnDisable()
 {
     Undo.undoRedoPerformed = (Undo.UndoRedoCallback)Delegate.Remove(Undo.undoRedoPerformed, new Undo.UndoRedoCallback(this.UndoRedoPerformed));
     if (this.m_RectsCache != null)
     {
         Undo.ClearUndo(this.m_RectsCache);
     }
     this.HandleApplyRevertDialog();
     this.InvalidatePropertiesCache();
     EditorApplication.modifierKeysChanged = (EditorApplication.CallbackFunction)Delegate.Remove(EditorApplication.modifierKeysChanged, new EditorApplication.CallbackFunction(this.ModifierKeysChanged));
     SpriteEditorWindow.s_Instance         = null;
     if (this.m_OutlineTexture != null)
     {
         UnityEngine.Object.DestroyImmediate(this.m_OutlineTexture);
         this.m_OutlineTexture = null;
     }
     if (this.m_ReadableTexture)
     {
         UnityEngine.Object.DestroyImmediate(this.m_ReadableTexture);
         this.m_ReadableTexture = null;
     }
 }