/// <summary>
        /// Tween の追加
        /// </summary>
        /// <param name="tIdentity"></param>
        public SoftTransformTween AddTween(string tIdentity)
        {
            SoftTransformTween tTween = gameObject.AddComponent <SoftTransformTween>();

            tTween.identity = tIdentity;

            return(tTween);
        }
        /// <summary>
        /// 実行中の Tween の実行開始からの経過時間を取得する
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <returns></returns>
        public float GetTweenProcessTime(string tIdentity)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                return(0);
            }

            return(tTween.processTime);
        }
        /// <summary>
        /// Tween の完全停止と状態のリセット
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <returns></returns>
        public bool StopAndResetTween(string tIdentity)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                return(false);
            }

            tTween.StopAndReset();
            return(true);
        }
        /// <summary>
        /// Tween の再開
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <returns></returns>
        public bool ContinueTween(string tIdentity)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                return(false);
            }

            tTween.Continue();
            return(true);
        }
        /// <summary>
        /// 実行中の Tween の実行開始からの経過時間を設定する
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <param name="tTime"></param>
        public bool SetTweenProcessTime(string tIdentity, float tTime)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                return(false);
            }

            tTween.processTime = tTime;

            return(true);
        }
        /// <summary>
        /// Tween の Delay と Duration を設定
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <param name="tDelay"></param>
        /// <param name="tDuration"></param>
        /// <returns></returns>
        public bool SetTweenTime(string tIdentity, float tDelay = -1, float tDuration = -1)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                return(false);
            }

            tTween.delay    = tDelay;
            tTween.duration = tDuration;
            return(true);
        }
        /// <summary>
        /// Tween の再生(コルーチン)
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <param name="tDelay"></param>
        /// <param name="tDuration"></param>
        /// <returns></returns>
        public IEnumerator PlayTween_Coroutine(string tIdentity, float tDelay = -1, float tDuration = -1)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                yield break;
            }

            if (tTween.gameObject.activeSelf == false)
            {
                tTween.gameObject.SetActive(true);
            }

            yield return(StartCoroutine(tTween.Play_Coroutine(tDelay, tDuration)));
        }
        /// <summary>
        /// Tween の再生
        /// </summary>
        /// <param name="tIdentity"></param>
        /// <param name="tDelay"></param>
        /// <param name="tDuration"></param>
        /// <returns></returns>
        public bool PlayTween(string tIdentity, float tDelay = -1, float tDuration = -1)
        {
            SoftTransformTween tTween = GetTween(tIdentity);

            if (tTween == null)
            {
                return(false);
            }

            if (tTween.gameObject.activeSelf == false)
            {
                tTween.gameObject.SetActive(true);
            }

            tTween.Play(tDelay, tDuration);
            return(true);
        }
        // 曲線を描画する
        private void DrawCurve(SoftTransformTween tTarget, float tCheckFactor, SoftTransformTween.ProcessType tProcessType, SoftTransformTween.EaseType tEaseType, AnimationCurve tAnimationCurve)
        {
            Rect tRect = GUILayoutUtility.GetRect(Screen.width - 64, 102f);

            float x = 0;

            x = (tRect.width - 52f) * 0.5f;
            if (x < 0)
            {
                x = 0;
            }
            tRect.x     = x;
            tRect.width = 52f;

            EditorGUI.DrawRect(new Rect(tRect.x + 0, tRect.y + 0, tRect.width - 0, tRect.height - 0), new Color(1.0f, 1.0f, 1.0f, 1.0f));
            EditorGUI.DrawRect(new Rect(tRect.x + 1, tRect.y + 1, tRect.width - 2, tRect.height - 2), new Color(0.2f, 0.2f, 0.2f, 1.0f));

            DrawLine(0, 25, 49, 25, 0xFF7F7F7F, tRect.x + 1.0f, tRect.y + 1.0f);
            DrawLine(0, 74, 49, 74, 0xFF7F7F7F, tRect.x + 1.0f, tRect.y + 1.0f);
            DrawLine(25, 99, 25, 0, 0xFF4F4F4F, tRect.x + 1.0f, tRect.y + 1.0f);
            DrawLine(0, 49, 49, 49, 0xFF4F4F4F, tRect.x + 1.0f, tRect.y + 1.0f);

            int px = 0, py = 0;
            int ox = 0, oy = 0;

            for (px = 0; px < 50; px++)
            {
                py = ( int )SoftTransformTween.GetValue(0, 50, ( float )px * 0.02f, tProcessType, tEaseType, tAnimationCurve);

                if (px == 0)
                {
                    ox = px;
                    oy = py;
                }
                else
                {
                    DrawLine(ox, ((74 - oy) / 1) + 0, px, ((74 - py) / 1) + 0, 0xFF00FF00, tRect.x + 1.0f, tRect.y + 1.0f);

                    ox = px;
                    oy = py;
                }
            }

            px = ( int )((50.0f * tCheckFactor) + 0.5f);
            DrawLine(px, 99, px, 0, 0xFFFF0000, tRect.x + 1.0f, tRect.y + 1.0f);
        }
        protected void DrawTween(SoftTransform tTarget)
        {
            EditorGUILayout.Separator();                // 少し区切りスペース

            // 存在している Tween コンポーネントを取得する
            SoftTransformTween[] tTweenArray = tTarget.GetComponents <SoftTransformTween>();

            // 1つ以上存在していればリストとして描画する
            int    i, l = tTweenArray.Length, j, c;
            string tIdentity;

            string[] tTweenIdentityArray = new string[l];
            for (i = 0; i < l; i++)
            {
                tTweenIdentityArray[i] = tTweenArray[i].identity;
            }
            for (i = 0; i < l; i++)
            {
                // 既に同じ名前が存在する場合は番号を振る
                tIdentity = tTweenIdentityArray[i];

                c = 0;
                for (j = i + 1; j < l; j++)
                {
                    if (tTweenIdentityArray[j] == tIdentity)
                    {
                        // 同じ名前を発見した
                        c++;
                        tTweenIdentityArray[j] = tTweenIdentityArray[j] + "(" + c + ")";
                    }
                }
            }

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

            if (m_RemoveTweenIndexAnswer < 0)
            {
                GUILayout.BeginHorizontal();                    // 横並び開始
                {
                    bool tAdd = false;

                    GUI.backgroundColor = Color.cyan;
                    if (GUILayout.Button("Add Tween", GUILayout.Width(140f)) == true)
                    {
                        tAdd = true;
                    }
                    GUI.backgroundColor = Color.white;

                    GUI.backgroundColor = Color.cyan;
                    m_AddTweenIdentity  = EditorGUILayout.TextField("", m_AddTweenIdentity, GUILayout.Width(120f));
                    GUI.backgroundColor = Color.white;

                    if (tAdd == true)
                    {
                        if (string.IsNullOrEmpty(m_AddTweenIdentity) == false)
                        {
                            // Tween を追加する
                            SoftTransformTween tTween = tTarget.AddComponent <SoftTransformTween>();
                            tTween.identity = m_AddTweenIdentity;

                            SoftTransformTween[] tTweenList = tTarget.gameObject.GetComponents <SoftTransformTween>();
                            if (tTweenList != null && tTweenList.Length > 0)
                            {
                                for (i = 0; i < tTweenList.Length; i++)
                                {
                                    if (tTweenList[i] != tTween)
                                    {
                                        break;
                                    }
                                }
                                if (i < tTweenList.Length)
                                {
                                    // 既にトゥイーンコンポーネントがアタッチされているので enable と PlayOnAwake を false にする
                                    tTween.enabled     = false;
                                    tTween.playOnAwake = false;
                                }
                            }
                        }
                        else
                        {
                            EditorUtility.DisplayDialog("Add Tween", GetMessage("InputIdentity"), "Close");
                        }
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了

                if (tTweenArray != null && tTweenArray.Length > 0)
                {
                    GUILayout.BeginHorizontal();                        // 横並び開始
                    {
                        bool tRemove = false;
                        GUI.backgroundColor = Color.red;                                // ボタンの下地を緑に
                        if (GUILayout.Button("Remove Tween", GUILayout.Width(140f)) == true)
                        {
                            tRemove = true;
                        }
                        GUI.backgroundColor = Color.white;                              // ボタンの下地を緑に

                        if (m_RemoveTweenIndex >= tTweenIdentityArray.Length)
                        {
                            m_RemoveTweenIndex = tTweenIdentityArray.Length - 1;
                        }
                        m_RemoveTweenIndex = EditorGUILayout.Popup("", m_RemoveTweenIndex, tTweenIdentityArray, GUILayout.Width(120f));                                 // フィールド名有りタイプ

                        if (tRemove == true)
                        {
                            // 削除する
                            m_RemoveTweenIndexAnswer = m_RemoveTweenIndex;
                        }
                    }
                    GUILayout.EndHorizontal();                                  // 横並び終了
                }
            }
            else
            {
                string tMessage = GetMessage("RemoveTweenOK?").Replace("%1", tTweenIdentityArray[m_RemoveTweenIndexAnswer]);
                GUILayout.Label(tMessage);
                //			GUILayout.Label( "It does really may be to remove tween '" + tTweenIdentityArray[ mRemoveTweenIndexAnswer ] + "' ?" ) ;
                GUILayout.BeginHorizontal();                    // 横並び開始
                {
                    GUI.backgroundColor = Color.red;
                    if (GUILayout.Button("OK", GUILayout.Width(100f)) == true)
                    {
                        // 本当に削除する
                        Undo.RecordObject(tTarget, "UIView : Tween Remove");                            // アンドウバッファに登録
                        tTarget.removeTweenIdentity = tTweenArray[m_RemoveTweenIndexAnswer].identity;
                        tTarget.removeTweenInstance = tTweenArray[m_RemoveTweenIndexAnswer].GetInstanceID();
                        EditorUtility.SetDirty(tTarget);
                        UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene());

                        m_RemoveTweenIndexAnswer = -1;
                    }
                    GUI.backgroundColor = Color.white;
                    if (GUILayout.Button("Cancel", GUILayout.Width(100f)) == true)
                    {
                        m_RemoveTweenIndexAnswer = -1;
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了
            }
        }
        // スンスペクター描画
        public override void OnInspectorGUI()
        {
            // とりあえずデフォルト
            //		DrawDefaultInspector() ;

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

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

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

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

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

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

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

            // デュアレーション
            float tDuration = EditorGUILayout.FloatField("Duration", tTarget.duration);

            if (tDuration != tTarget.duration)
            {
                Undo.RecordObject(tTarget, "SoftTransformTween : Duration Change");                     // アンドウバッファに登録
                tTarget.duration = tDuration;
                EditorUtility.SetDirty(tTarget);
            }

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

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

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

            EditorGUIUtility.wideMode = true;


            GUILayout.BeginHorizontal();                // 横並び
            {
                if (tTarget.positionEnabled == false)
                {
                    GUILayout.Label("Position Enabled" /*, GUILayout.Width( 116f ) */);
                }
                else
                {
                    tTarget.positionFoldOut = EditorGUILayout.Foldout(tTarget.positionFoldOut, "Position Enabled");
                }

                bool tPositionEnabled = EditorGUILayout.Toggle(tTarget.positionEnabled, GUILayout.Width(24f));
                if (tPositionEnabled != tTarget.positionEnabled)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Position Enabled Change");                         // アンドウバッファに登録
                    tTarget.positionEnabled = tPositionEnabled;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

            if (tTarget.positionEnabled == true && tTarget.positionFoldOut == true)
            {
                // ポジション

                Vector3 tPositionFrom = EditorGUILayout.Vector3Field(" From", tTarget.positionFrom /*, GUILayout.MaxWidth( 100f ) */);
                if (tPositionFrom != tTarget.positionFrom)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Position From Change");                            // アンドウバッファに登録
                    tTarget.positionFrom = tPositionFrom;
                    EditorUtility.SetDirty(tTarget);
                }

                Vector3 tPositionTo = EditorGUILayout.Vector3Field(" To", tTarget.positionTo /*, GUILayout.MaxWidth( 100f ) */);
                if (tPositionTo != tTarget.positionTo)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Position To Change");                              // アンドウバッファに登録
                    tTarget.positionTo = tPositionTo;
                    EditorUtility.SetDirty(tTarget);
                }

                // プロセスタイプ
                SoftTransformTween.ProcessType tPositionProcessType = (SoftTransformTween.ProcessType)EditorGUILayout.EnumPopup(" Process Type", tTarget.positionProcessType);
                if (tPositionProcessType != tTarget.positionProcessType)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Position Process Type Change");                            // アンドウバッファに登録
                    tTarget.positionProcessType = tPositionProcessType;
                    EditorUtility.SetDirty(tTarget);
                }

                if (tTarget.positionProcessType == SoftTransformTween.ProcessType.Ease)
                {
                    // イーズタイプ
                    SoftTransformTween.EaseType tPositionEaseType = (SoftTransformTween.EaseType)EditorGUILayout.EnumPopup(" EaseType", tTarget.positionEaseType);
                    if (tPositionEaseType != tTarget.positionEaseType)
                    {
                        Undo.RecordObject(tTarget, "SoftTransformTween : Position Ease Type Change");                                   // アンドウバッファに登録
                        tTarget.positionEaseType = tPositionEaseType;
                        EditorUtility.SetDirty(tTarget);
                    }
                }
                else
                if (tTarget.positionProcessType == SoftTransformTween.ProcessType.AnimationCurve)
                {
                    AnimationCurve tAnimationCurve = new AnimationCurve(tTarget.positionAnimationCurve.keys);
                    tTarget.positionAnimationCurve = EditorGUILayout.CurveField(" Animation Curve", tAnimationCurve, GUILayout.Width(170f), GUILayout.Height(52f));
                }

                if (tTarget.isChecker == true)
                {
                    DrawCurve(tTarget, tTarget.checkFactor, tTarget.positionProcessType, tTarget.positionEaseType, tTarget.positionAnimationCurve);
                }

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

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

            GUILayout.BeginHorizontal();                // 横並び
            {
                if (tTarget.rotationEnabled == false)
                {
                    GUILayout.Label("Rotation Enabled" /*, GUILayout.Width( 116f ) */);
                }
                else
                {
                    tTarget.rotationFoldOut = EditorGUILayout.Foldout(tTarget.rotationFoldOut, "Rotation Enabled");
                }

                bool tRotationEnabled = EditorGUILayout.Toggle(tTarget.rotationEnabled, GUILayout.Width(24f));
                if (tRotationEnabled != tTarget.rotationEnabled)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Rotation Enabled Change");                         // アンドウバッファに登録
                    tTarget.rotationEnabled = tRotationEnabled;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

            if (tTarget.rotationEnabled == true && tTarget.rotationFoldOut == true)
            {
                // ローテーション

                Vector3 tRotationFrom = EditorGUILayout.Vector3Field(" From", tTarget.rotationFrom);
                if (tRotationFrom != tTarget.rotationFrom)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Rotation From Change");                            // アンドウバッファに登録
                    tTarget.rotationFrom = tRotationFrom;
                    EditorUtility.SetDirty(tTarget);
                }

                Vector3 tRotationTo = EditorGUILayout.Vector3Field(" To", tTarget.rotationTo);
                if (tRotationTo != tTarget.rotationTo)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Rotation To Change");                              // アンドウバッファに登録
                    tTarget.rotationTo = tRotationTo;
                    EditorUtility.SetDirty(tTarget);
                }

                // プロセスタイプ
                SoftTransformTween.ProcessType tRotationProcessType = (SoftTransformTween.ProcessType)EditorGUILayout.EnumPopup(" Process Type", tTarget.rotationProcessType);
                if (tRotationProcessType != tTarget.rotationProcessType)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Rotation Process Type Change");                            // アンドウバッファに登録
                    tTarget.rotationProcessType = tRotationProcessType;
                    EditorUtility.SetDirty(tTarget);
                }

                if (tTarget.rotationProcessType == SoftTransformTween.ProcessType.Ease)
                {
                    // イーズタイプ
                    SoftTransformTween.EaseType tRotationEaseType = (SoftTransformTween.EaseType)EditorGUILayout.EnumPopup(" EaseType", tTarget.rotationEaseType);
                    if (tRotationEaseType != tTarget.rotationEaseType)
                    {
                        Undo.RecordObject(tTarget, "SoftTransformTween : Rotation Ease Type Change");                                   // アンドウバッファに登録
                        tTarget.rotationEaseType = tRotationEaseType;
                        EditorUtility.SetDirty(tTarget);
                    }
                }
                else
                if (tTarget.rotationProcessType == SoftTransformTween.ProcessType.AnimationCurve)
                {
                    AnimationCurve tAnimationCurve = new AnimationCurve(tTarget.rotationAnimationCurve.keys);
                    tTarget.rotationAnimationCurve = EditorGUILayout.CurveField(" Animation Curve", tAnimationCurve, GUILayout.Width(170f), GUILayout.Height(52f));
                }

                if (tTarget.isChecker == true)
                {
                    DrawCurve(tTarget, tTarget.checkFactor, tTarget.rotationProcessType, tTarget.rotationEaseType, tTarget.rotationAnimationCurve);
                }

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

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

            GUILayout.BeginHorizontal();                // 横並び
            {
                if (tTarget.scaleEnabled == false)
                {
                    GUILayout.Label("Scale Enabled" /*, GUILayout.Width( 116f ) */);
                }
                else
                {
                    tTarget.scaleFoldOut = EditorGUILayout.Foldout(tTarget.scaleFoldOut, "Scale Enabled");
                }

                bool tScaleEnabled = EditorGUILayout.Toggle(tTarget.scaleEnabled, GUILayout.Width(24f));
                if (tScaleEnabled != tTarget.scaleEnabled)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Scale Enabled Change");                            // アンドウバッファに登録
                    tTarget.scaleEnabled = tScaleEnabled;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

            if (tTarget.scaleEnabled == true && tTarget.scaleFoldOut == true)
            {
                // スケール

                Vector3 tScaleFrom = EditorGUILayout.Vector3Field(" From", tTarget.scaleFrom);
                if (tScaleFrom != tTarget.scaleFrom)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Scale From Change");                               // アンドウバッファに登録
                    tTarget.scaleFrom = tScaleFrom;
                    EditorUtility.SetDirty(tTarget);
                }

                Vector3 tScaleTo = EditorGUILayout.Vector3Field(" To", tTarget.scaleTo);
                if (tScaleTo != tTarget.scaleTo)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Scale To Change");                         // アンドウバッファに登録
                    tTarget.scaleTo = tScaleTo;
                    EditorUtility.SetDirty(tTarget);
                }

                // プロセスタイプ
                SoftTransformTween.ProcessType tScaleProcessType = (SoftTransformTween.ProcessType)EditorGUILayout.EnumPopup(" Process Type", tTarget.scaleProcessType);
                if (tScaleProcessType != tTarget.scaleProcessType)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Scale Process Type Change");                               // アンドウバッファに登録
                    tTarget.scaleProcessType = tScaleProcessType;
                    EditorUtility.SetDirty(tTarget);
                }

                if (tTarget.scaleProcessType == SoftTransformTween.ProcessType.Ease)
                {
                    // イーズタイプ
                    SoftTransformTween.EaseType tScaleEaseType = (SoftTransformTween.EaseType)EditorGUILayout.EnumPopup(" EaseType", tTarget.scaleEaseType);
                    if (tScaleEaseType != tTarget.scaleEaseType)
                    {
                        Undo.RecordObject(tTarget, "SoftTransformTween : Scale Ease Type Change");                              // アンドウバッファに登録
                        tTarget.scaleEaseType = tScaleEaseType;
                        EditorUtility.SetDirty(tTarget);
                    }
                }
                else
                if (tTarget.scaleProcessType == SoftTransformTween.ProcessType.AnimationCurve)
                {
                    AnimationCurve tAnimationCurve = new AnimationCurve(tTarget.scaleAnimationCurve.keys);
                    tTarget.scaleAnimationCurve = EditorGUILayout.CurveField(" Animation Curve", tAnimationCurve, GUILayout.Width(170f), GUILayout.Height(52f));
                }

                if (tTarget.isChecker == true)
                {
                    DrawCurve(tTarget, tTarget.checkFactor, tTarget.scaleProcessType, tTarget.scaleEaseType, tTarget.scaleAnimationCurve);
                }

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


            // ワイドモードを元に戻す
            EditorGUIUtility.wideMode = tWideMode;


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

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

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

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

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

                if (tTarget.isChecker == true)
                {
                    GUILayout.BeginHorizontal();                        // 横並び
                    {
                        float tCheckFactor = EditorGUILayout.Slider(tTarget.checkFactor, 0, 1);
                        if (tCheckFactor != tTarget.checkFactor)
                        {
                            tTarget.checkFactor = tCheckFactor;
                        }
                    }
                    GUILayout.EndHorizontal();                                  // 横並び終了
                }
            }

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

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

            // バリュータイプ
            SoftTransformTween.ValueType tValueType = (SoftTransformTween.ValueType)EditorGUILayout.EnumPopup("ValueType", tTarget.valueType);
            if (tValueType != tTarget.valueType)
            {
                Undo.RecordObject(tTarget, "SoftTransformTween : Value Type Change");                           // アンドウバッファに登録
                tTarget.valueType = tValueType;
                EditorUtility.SetDirty(tTarget);
            }

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

                bool tLoop = EditorGUILayout.Toggle(tTarget.loop);
                if (tLoop != tTarget.loop)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Loop Change");                             // アンドウバッファに登録
                    tTarget.loop = tLoop;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            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, "SoftTransformTween : Reverse Change");                              // アンドウバッファに登録
                        tTarget.reverse = tReverse;
                        EditorUtility.SetDirty(tTarget);
                    }
                }
                GUILayout.EndHorizontal();                              // 横並び終了
            }

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

                bool tIgnoreTimeScale = EditorGUILayout.Toggle(tTarget.ignoreTimeScale);
                if (tIgnoreTimeScale != tTarget.ignoreTimeScale)
                {
                    Undo.RecordObject(tTarget, "SoftTransformTween : Ignore Time Scale Change");                        // アンドウバッファに登録
                    tTarget.ignoreTimeScale = tIgnoreTimeScale;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            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, "SoftTransformTween : Play On Awake Change");                            // アンドウバッファに登録
                    tTarget.playOnAwake = tPlayOnAwake;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

//			GUILayout.BeginHorizontal() ;	// 横並び
//			{
//				// プレイオンアウェイク
//				GUILayout.Label( "Interaction Disable In Playing", GUILayout.Width( 180f ) ) ;
//
//				bool tInteractionDisableInPlaying = EditorGUILayout.Toggle( tTarget.interactionDisableInPlaying ) ;
//				if( tInteractionDisableInPlaying != tTarget.interactionDisableInPlaying )
//				{
//					Undo.RecordObject( tTarget, "SoftTransformTween : Interaction Disable In Playing Change" ) ;	// アンドウバッファに登録
//					tTarget.interactionDisableInPlaying = tInteractionDisableInPlaying ;
//					EditorUtility.SetDirty( tTarget ) ;
//				}
//			}
//			GUILayout.EndHorizontal() ;		// 横並び終了

//			if( tTarget.interactionDisableInPlaying == true )
//			{
//			}

            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();
        }