예제 #1
0
        static public void CreateSpriteAnimation()
        {
            string tPath = "Assets/";
            string tName = "A New SpriteAnimation";

            if (Selection.objects != null && Selection.objects.Length == 1 && Selection.activeObject != null)
            {
                if (Selection.activeObject.GetType() != typeof(GameObject))
                {
                    tPath = AssetDatabase.GetAssetPath(Selection.activeObject.GetInstanceID());

                    string tCheckPath = tPath.Replace("/", "\\");
                    if (System.IO.File.Exists(tCheckPath) == true)
                    {
                        // ファイルなのでフォルダ名を取得する

                        // 最後のフォルダ区切り位置を取得する
                        int s = tPath.LastIndexOf('/');

                        tPath = tPath.Substring(0, s);
                    }

                    tPath = tPath + "/";
                }
            }

            tPath = tPath + tName + ".asset";

            UISpriteAnimation tSpriteAnimation = AssetDatabase.LoadAssetAtPath(tPath, typeof(UISpriteAnimation)) as UISpriteAnimation;

            if (tSpriteAnimation != null)
            {
                // 既にアセットが存在する
                Selection.activeObject = tSpriteAnimation;

                return;
            }

            tSpriteAnimation      = ScriptableObject.CreateInstance <UISpriteAnimation>();
            tSpriteAnimation.name = tName;

            AssetDatabase.CreateAsset(tSpriteAnimation, tPath);
            AssetDatabase.Refresh();

            Selection.activeObject = tSpriteAnimation;
        }
예제 #2
0
        // スンスペクター描画
        public override void OnInspectorGUI()
        {
            // とりあえずデフォルト
            //		DrawDefaultInspector() ;

            //-----------------------------------------------------

            // ターゲットのインスタンス
            UISpriteAnimation tTarget = target as UISpriteAnimation;

            //-----------------------------------------------------

            EditorGUILayout.Separator();                // 少し区切りスペース


            Texture tTexture = EditorGUILayout.ObjectField("Atlas Sprite", tTarget.texture, typeof(Texture), false) as Texture;

            if (m_TemporaryTexture == null)
            {
                if (tTexture != tTarget.texture)
                {
                    m_TemporaryTexture = tTexture;
                }
            }
            else
            {
                bool tChange = false;
                if (tTarget.texture != null)
                {
                    string tMessage = GetMessage("ChangeOK?");
                    GUILayout.Label(tMessage);
                    GUILayout.BeginHorizontal();                        // 横並び開始
                    {
                        GUI.backgroundColor = Color.red;
                        if (GUILayout.Button("OK", GUILayout.Width(100f)) == true)
                        {
                            tChange = true;
                        }
                        GUI.backgroundColor = Color.white;
                        if (GUILayout.Button("Cancel", GUILayout.Width(100f)) == true)
                        {
                            m_TemporaryTexture = null;
                        }
                    }
                    GUILayout.EndHorizontal();                          // 横並び終了
                }
                else
                {
                    tChange = true;
                }

                if (tChange == true)
                {
                    // 本当に変更する
                    Undo.RecordObject(tTarget, "UISpriteAnimation : Change");                           // アンドウバッファに登録

                    tTarget.texture = m_TemporaryTexture;

                    List <Sprite> tList = new List <Sprite>();

                    if (tTarget.texture != null)
                    {
                        string tPath = AssetDatabase.GetAssetPath(tTarget.texture.GetInstanceID());

                        // テクスチャからパスを取得してマルチタイプスプライトとしてロードする
                        UnityEngine.Object[] tSpriteAll = AssetDatabase.LoadAllAssetsAtPath(tPath);

                        if (tSpriteAll != null)
                        {
                            int i, l = tSpriteAll.Length;

                            for (i = 0; i < l; i++)
                            {
                                if (tSpriteAll[i] is UnityEngine.Sprite)
                                {
                                    tList.Add(tSpriteAll[i] as UnityEngine.Sprite);
                                }
                            }
                        }
                    }

                    if (tList.Count > 0)
                    {
                        // 存在するので更新する
                        tTarget.SetSprite(tList.ToArray());
                    }
                    else
                    {
                        // 存在しないのでクリアする
                        tTarget.ClearSprite();
                    }

                    EditorUtility.SetDirty(tTarget);

                    m_TemporaryTexture = null;
                }
            }

            //-----------------------------------------------------

            if (tTarget.exist == true)
            {
                EditorGUILayout.Separator();                    // 少し区切りスペース

                DrawFrame(tTarget);
            }
        }
예제 #3
0
        protected void DrawFrame(UISpriteAnimation tTarget)
        {
            EditorGUILayout.Separator();                // 少し区切りスペース

            float tTimeScale = EditorGUILayout.FloatField("Time Scale", tTarget.timeScale);

            if (tTimeScale > 0 && tTimeScale != tTarget.timeScale)
            {
                Undo.RecordObject(tTarget, "UISpriteAnimation : Time Scale Change"); // アンドウバッファに登録
                tTarget.timeScale = tTimeScale;
                EditorUtility.SetDirty(tTarget);                                     // アセットデータベースに変更を通知
            }


            int i, l;

            l = tTarget.frame.Count + 1;
            string[] tFrameNumber = new string[l];
            for (i = 0; i < l; i++)
            {
                tFrameNumber[i] = i.ToString();
            }
            if (m_InsertFrameIndex < 0)
            {
                m_InsertFrameIndex = l - 1;                     // 最終フレーム指定
            }
            else
            if (m_InsertFrameIndex >= tFrameNumber.Length)
            {
                m_InsertFrameIndex = tFrameNumber.Length - 1;
            }

            l = tTarget.GetSpriteCount();

            string[] tSpriteName = new string[l];
            for (i = 0; i < l; i++)
            {
                if (tTarget.GetSprite(i) != null)
                {
                    tSpriteName[i] = tTarget.GetSprite(i).name;
                }
                else
                {
                    tSpriteName[i] = "<Missing>";
                }
            }
            if (m_InsertSpriteIndex < 0)
            {
                m_InsertSpriteIndex = l - 1;                    // 最終フレーム指定
            }
            else
            if (m_InsertSpriteIndex >= tSpriteName.Length)
            {
                m_InsertSpriteIndex = tSpriteName.Length - 1;
            }

            //----------------------------------------------------

            GUILayout.BeginHorizontal();                // 横並び開始
            {
                bool tInsert = false;

                // 挿入ボタン
                GUI.backgroundColor = Color.cyan;
                if (GUILayout.Button("Insert", GUILayout.Width(60f)) == true)
                {
                    tInsert = true;
                }
                GUI.backgroundColor = Color.white;

                // フレーム番号
                m_InsertFrameIndex = EditorGUILayout.Popup("", m_InsertFrameIndex, tFrameNumber, GUILayout.Width(50f));

                // スプライト番号
                m_InsertSpriteIndex = EditorGUILayout.Popup("", m_InsertSpriteIndex, tSpriteName, GUILayout.Width(120f));

                // 表示時間
                m_InsertDuration = EditorGUILayout.FloatField("", m_InsertDuration, GUILayout.Width(50f));

                if (tInsert == true && tSpriteName[m_InsertSpriteIndex] != "<Missing>" && m_InsertDuration > 0)
                {
                    // Frame を追加する
                    Undo.RecordObject(tTarget, "UISpriteAnimation : Insert");                           // アンドウバッファに登録
                    tTarget.Insert(m_InsertFrameIndex, m_InsertSpriteIndex, m_InsertDuration);
                    EditorUtility.SetDirty(tTarget);

                    m_InsertFrameIndex++;
                    m_InsertSpriteIndex++;

                    m_RemoveFrameIndex = null;
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了


            // 以下1つ以上フレームが登録されている場合のみ表示する
            l = tTarget.frame.Count;
            if (l > 0)
            {
                // 削除用フラグ
                if (m_RemoveFrameIndex == null)
                {
                    m_RemoveFrameIndex = new bool[l];
                    for (i = 0; i < l; i++)
                    {
                        m_RemoveFrameIndex[i] = false;
                    }
                }

                //------------------------------------------------

                // 削除確認
                if (m_RemoveFrameIndex != null)
                {
                    if (m_ExecuteRemove == false)
                    {
                        // 削除ではない

                        bool tRemove = false;
                        for (i = 0; i < l; i++)
                        {
                            if (m_RemoveFrameIndex[i] == true)
                            {
                                tRemove = true;
                                break;
                            }
                        }

                        if (tRemove == true)
                        {
                            GUI.backgroundColor = Color.red;
                            if (GUILayout.Button("Execute Remove", GUILayout.Height(36f)) == true)
                            {
                                m_ExecuteRemove = true;
                            }
                            GUI.backgroundColor = Color.white;
                        }
                        else
                        {
                            GUILayout.Label("", GUILayout.Height(38f));
                        }
                    }
                    else
                    {
                        // 削除の最終確認

                        string tMessage = GetMessage("RemoveOK?");
                        GUILayout.Label(tMessage);
                        GUILayout.BeginHorizontal();                            // 横並び開始
                        {
                            GUI.backgroundColor = Color.red;
                            if (GUILayout.Button("OK", GUILayout.Width(100f)) == true)
                            {
                                // 本当に削除する
                                Undo.RecordObject(tTarget, "UISpriteAnimation : Remove");                                       // アンドウバッファに登録

                                List <int> tRemoveFrameIndex = new List <int>();
                                for (i = 0; i < l; i++)
                                {
                                    if (m_RemoveFrameIndex[i] == true)
                                    {
                                        tRemoveFrameIndex.Add(i);
                                    }
                                }

                                if (tRemoveFrameIndex.Count > 0)
                                {
                                    tTarget.Remove(tRemoveFrameIndex.ToArray());
                                }

                                EditorUtility.SetDirty(tTarget);

                                m_RemoveFrameIndex = null;

                                m_ExecuteRemove = false;
                            }
                            GUI.backgroundColor = Color.white;
                            if (GUILayout.Button("Cancel", GUILayout.Width(100f)) == true)
                            {
                                m_ExecuteRemove = false;
                            }
                        }
                        GUILayout.EndHorizontal();                                      // 横並び終了

                        if (m_RemoveFrameIndex == null)
                        {
                            // フレームの数が変動しているので以下のリストを表示してはならない
                            return;
                        }
                    }
                }

                //---------------------------

                EditorGUILayout.Separator();                    // 少し区切りスペース

                GUILayout.BeginHorizontal();                    // 横並び
                {
                    GUILayout.Label("Frame");

                    m_Thumbnail = EditorGUILayout.Toggle(m_Thumbnail, GUILayout.Width(16f));
                    GUILayout.Label("Thumbnail");
                }
                GUILayout.EndHorizontal();                      // 横並び終了

                EditorGUILayout.Separator();                    // 少し区切りスペース


                // 登録されているフレーム情報を表示する
                m_Scroll = GUILayout.BeginScrollView(m_Scroll);
                {
                    for (i = 0; i < l; i++)
                    {
                        GUILayout.BeginHorizontal();
                        {
                            // サムネイルアイコン

                            // フレーム番号(右寄せ)
                            GUILayout.Label(i.ToString(), GUILayout.Width(30f));


                            // スプライト選択
                            int tSpriteIndex = EditorGUILayout.Popup("", tTarget.frame[i].spriteIndex, tSpriteName, GUILayout.Width(120f));                                     // フィールド名有りタイプ
                            if (tSpriteIndex != tTarget.frame[i].spriteIndex)
                            {
                                if (tSpriteName[tSpriteIndex] != "<Missing>")
                                {
                                    Undo.RecordObject(tTarget, "UISpriteAnimation : Change");                                           // アンドウバッファに登録
                                    tTarget.frame[i].spriteIndex = tSpriteIndex;
                                    EditorUtility.SetDirty(tTarget);
                                }
                            }


                            // 表示時間
                            float tDuration = EditorGUILayout.FloatField("", tTarget.frame[i].duration, GUILayout.Width(50f));
                            if (tDuration != tTarget.frame[i].duration && tDuration > 0)
                            {
                                Undo.RecordObject(tTarget, "UISpriteAnimation : Change");                                       // アンドウバッファに登録
                                tTarget.frame[i].duration = tDuration;
                                EditorUtility.SetDirty(tTarget);
                            }


                            // 削除用ボタン
                            if (m_RemoveFrameIndex[i] == false)
                            {
                                GUI.backgroundColor = Color.white;
                            }
                            else
                            {
                                GUI.backgroundColor = Color.red;
                            }
                            if (GUILayout.Button("Remove", GUILayout.Width(60f)))
                            {
                                m_RemoveFrameIndex[i] = !m_RemoveFrameIndex[i];
                            }
                            GUI.backgroundColor = Color.white;
                        }
                        GUILayout.EndHorizontal();

                        // サムネイル
                        if (m_Thumbnail == true)
                        {
                            GUILayout.BeginHorizontal();
                            {
                                GUILayout.Label("", GUILayout.Width(30f));
                                Sprite tSprite = EditorGUILayout.ObjectField("", tTarget.GetSprite(i), typeof(Sprite), false, GUILayout.Width(60f), GUILayout.Height(60f)) as Sprite;
                                if (tSprite != tTarget.GetSprite(i))
                                {
                                }
                            }
                            GUILayout.EndHorizontal();
                        }
                    }
                }
                GUILayout.EndScrollView();
            }
        }
        // スンスペクター描画
        public override void OnInspectorGUI()
        {
            // とりあえずデフォルト
            //		DrawDefaultInspector() ;

            //--------------------------------------------

            // ターゲットのインスタンス
            UIFlipper tTarget = target as UIFlipper;

            EditorGUILayout.Separator();                // 少し区切りスペース

            // 識別子
            GUI.backgroundColor = Color.cyan;
            string tIdentity = EditorGUILayout.TextField("Identity", tTarget.identity);

            GUI.backgroundColor = Color.white;
            if (tIdentity != tTarget.identity)
            {
                Undo.RecordObject(tTarget, "UIFlipper : Identity Change");                      // アンドウバッファに登録
                tTarget.identity = tIdentity;
                EditorUtility.SetDirty(tTarget);
//				UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
            }

            // ディレイ
            float tDelay = EditorGUILayout.FloatField("Delay", tTarget.delay);

            if (tDelay != tTarget.delay)
            {
                Undo.RecordObject(tTarget, "UIFlipper : Delay Change");                         // アンドウバッファに登録
                tTarget.delay = tDelay;
                EditorUtility.SetDirty(tTarget);
//				UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
            }

            //------------------------------------------------

            EditorGUILayout.Separator();                // 少し区切りスペース

            if (tTarget.GetComponent <Image>() == null)
            {
                EditorGUILayout.HelpBox(GetMessage("ImageNone"), MessageType.Warning, true);
            }

            // ワイドモードを有効にする
            //		bool tWideMode = EditorGUIUtility.wideMode ;
            //		EditorGUIUtility.wideMode = true ;


            //--------------------------------------------------------------------

            // 一番肝心なスプライトアニメーションファイル
            UISpriteAnimation tSpriteAnimation = EditorGUILayout.ObjectField("Sprite Animation", tTarget.spriteAnimation, typeof(UISpriteAnimation), false) as UISpriteAnimation;

            if (tSpriteAnimation != tTarget.spriteAnimation)
            {
                Undo.RecordObject(tTarget, "UIFlipper : Sprite Animation Change ");                     // アンドウバッファに登録
                tTarget.spriteAnimation = tSpriteAnimation;
                EditorUtility.SetDirty(tTarget);
//				UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
            }

            if (tTarget.enabled == true && tTarget.spriteAnimation != null)
            {
                EditorGUILayout.Separator();                    // 少し区切りスペース

                GUILayout.BeginHorizontal();                    // 横並び
                {
                    // チェック
                    GUILayout.Label("Checker (Editor Only)", GUILayout.Width(150f));

                    bool tIsChecker = EditorGUILayout.Toggle(tTarget.isChecker);
                    if (tIsChecker != tTarget.isChecker)
                    {
                        if (tIsChecker == true)
                        {
                            UIFlipper[] tFlipperList = tTarget.gameObject.GetComponents <UIFlipper>();
                            if (tFlipperList != null && tFlipperList.Length > 0)
                            {
                                for (int i = 0; i < tFlipperList.Length; i++)
                                {
                                    if (tFlipperList[i] != tTarget)
                                    {
                                        if (tFlipperList[i].isChecker == true)
                                        {
                                            tFlipperList[i].isChecker = false;
                                        }
                                    }
                                }
                            }
                        }


                        Undo.RecordObject(tTarget, "UIFlipper : Checker Change");                               // アンドウバッファに登録
                        tTarget.isChecker = tIsChecker;
                        EditorUtility.SetDirty(tTarget);
//						UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了

                if (tTarget.isChecker == true)
                {
                    GUILayout.BeginHorizontal();                        // 横並び
                    {
                        int tCheckFactor = EditorGUILayout.IntSlider(tTarget.checkFactor, 0, tTarget.spriteAnimation.length - 1);
                        if (tCheckFactor != tTarget.checkFactor)
                        {
                            Undo.RecordObject(tTarget, "UIFlipper : Check Factor Change ");                                     // アンドウバッファに登録
                            tTarget.checkFactor = tCheckFactor;
                            EditorUtility.SetDirty(tTarget);
//							UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;

                            /*						Image tImage = tTarget.GetComponent<Image>() ;
                             *                                              if( tImage != null )
                             *                                              {
                             *                                                      EditorUtility.SetDirty( tImage ) ;
                             *                                              }*/
                        }
                    }
                    GUILayout.EndHorizontal();                                  // 横並び終了
                }


                EditorGUILayout.Separator();                    // 少し区切りスペース

                // Begin
                GUILayout.BeginHorizontal();                    // 横並び
                {
                    GUILayout.Label("Begin", GUILayout.Width(60f));
                    int tBegin = EditorGUILayout.IntSlider(tTarget.begin, 0, tTarget.spriteAnimation.length - 1);
                    if (tBegin != tTarget.begin)
                    {
                        Undo.RecordObject(tTarget, "UIFlipper : Begin Change ");                                // アンドウバッファに登録
                        tTarget.begin = tBegin;
                        EditorUtility.SetDirty(tTarget);
//						UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了

                // end
                GUILayout.BeginHorizontal();                    // 横並び
                {
                    GUILayout.Label("End", GUILayout.Width(60f));
                    int tEnd = EditorGUILayout.IntSlider(tTarget.end, 0, tTarget.spriteAnimation.length - 1);
                    if (tEnd != tTarget.end)
                    {
                        Undo.RecordObject(tTarget, "UIFlipper : End Change ");                                  // アンドウバッファに登録
                        tTarget.end = tEnd;
                        EditorUtility.SetDirty(tTarget);
//						UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了
            }

            //--------------------------------------------------------------------

            EditorGUILayout.Separator();                // 少し区切りスペース

            GUILayout.BeginHorizontal();                // 横並び
            {
                // バック
                GUILayout.Label("Back", GUILayout.Width(116f));

                bool tBack = EditorGUILayout.Toggle(tTarget.back);
                if (tBack != tTarget.back)
                {
                    Undo.RecordObject(tTarget, "UIFlipper : Back Change");                              // アンドウバッファに登録
                    tTarget.back = tBack;
                    EditorUtility.SetDirty(tTarget);
//					UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了


            GUILayout.BeginHorizontal();                // 横並び
            {
                // ループ
                GUILayout.Label("Loop", GUILayout.Width(116f));

                bool tLoop = EditorGUILayout.Toggle(tTarget.loop);
                if (tLoop != tTarget.loop)
                {
                    Undo.RecordObject(tTarget, "UIFlipper : Loop Change");                              // アンドウバッファに登録
                    tTarget.loop = tLoop;
                    EditorUtility.SetDirty(tTarget);
//					UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

            if (tTarget.loop == true)
            {
                GUILayout.BeginHorizontal();                    // 横並び
                {
                    // リバース
                    GUILayout.Label("Reverse", GUILayout.Width(116f));

                    bool tReverse = EditorGUILayout.Toggle(tTarget.reverse);
                    if (tReverse != tTarget.reverse)
                    {
                        Undo.RecordObject(tTarget, "UIFlipper : Reverse Change");                               // アンドウバッファに登録
                        tTarget.reverse = tReverse;
                        EditorUtility.SetDirty(tTarget);
//						UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了
            }

            // スピード
            float tSpeed = EditorGUILayout.FloatField("Speed", tTarget.speed);

            if (tSpeed != tTarget.speed)
            {
                Undo.RecordObject(tTarget, "UIFlipper : Speed Change");                         // アンドウバッファに登録
                tTarget.speed = tSpeed;
                EditorUtility.SetDirty(tTarget);
//				UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
            }

            GUILayout.BeginHorizontal();                // 横並び
            {
                // イグノアタイムスケール
                GUILayout.Label("Ignore Time Scale", GUILayout.Width(116f));

                bool tIgnoreTimeScale = EditorGUILayout.Toggle(tTarget.ignoreTimeScale);
                if (tIgnoreTimeScale != tTarget.ignoreTimeScale)
                {
                    Undo.RecordObject(tTarget, "UIFlipper : Ignore Time Scale Change");                         // アンドウバッファに登録
                    tTarget.ignoreTimeScale = tIgnoreTimeScale;
                    EditorUtility.SetDirty(tTarget);
//					UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                }
            }
            GUILayout.EndHorizontal();                  // 横並び終了

            GUILayout.BeginHorizontal();                // 横並び
            {
                // プレイオンアウェイク
                GUILayout.Label("Play On Awake", GUILayout.Width(116f));

                bool tPlayOnAwake = EditorGUILayout.Toggle(tTarget.playOnAwake);
                if (tPlayOnAwake != tTarget.playOnAwake)
                {
                    Undo.RecordObject(tTarget, "UIFlipper : Play On Awake Change");                             // アンドウバッファに登録
                    tTarget.playOnAwake = tPlayOnAwake;
                    EditorUtility.SetDirty(tTarget);
//					UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                }
            }
            GUILayout.EndHorizontal();                  // 横並び終了


            GUILayout.BeginHorizontal();                // 横並び
            {
                // デストロイアットエンド
                GUILayout.Label("Destroy At End", GUILayout.Width(116f));

                bool tDestroyAtEnd = EditorGUILayout.Toggle(tTarget.destroyAtEnd);
                if (tDestroyAtEnd != tTarget.destroyAtEnd)
                {
                    Undo.RecordObject(tTarget, "UIFlipper : Destroy At End Change");                            // アンドウバッファに登録
                    tTarget.destroyAtEnd = tDestroyAtEnd;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了


            GUILayout.BeginHorizontal();                // 横並び
            {
                // デストロイアットエンド
                GUILayout.Label("Auto Resize", GUILayout.Width(116f));

                bool tAutoResize = EditorGUILayout.Toggle(tTarget.autoResize);
                if (tAutoResize != tTarget.autoResize)
                {
                    Undo.RecordObject(tTarget, "UIFlipper : Auto Resize Change");                               // アンドウバッファに登録
                    tTarget.autoResize = tAutoResize;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                  // 横並び終了

            EditorGUILayout.Separator();                // 少し区切りスペース

            GUILayout.BeginHorizontal();                // 横並び
            {
                // イズプレイング
                GUILayout.Label("Is Playing", GUILayout.Width(116f));

                EditorGUILayout.Toggle(tTarget.isPlaying);
            }
            GUILayout.EndHorizontal();                  // 横並び終了

            EditorGUILayout.Separator();                // 少し区切りスペース


            // デリゲートの設定状況
            SerializedObject tSO = new SerializedObject(tTarget);

            SerializedProperty tSP = tSO.FindProperty("onFinished");

            if (tSP != null)
            {
                EditorGUILayout.PropertyField(tSP);
            }
            tSO.ApplyModifiedProperties();
        }