override protected void DrawInspectorGUI()
        {
            UIScrollbar tTarget = target as UIScrollbar;

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

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

            UIScrollView tScrollViewElastic = EditorGUILayout.ObjectField("ScrollView Elastic", tTarget.scrollViewElastic, typeof(UIScrollView), true) as UIScrollView;

            if (tScrollViewElastic != tTarget.scrollViewElastic)
            {
                Undo.RecordObject(tTarget, "UIScrollbar : ScrollbarViewElastic Change");                        // アンドウバッファに登録
                tTarget.scrollViewElastic = tScrollViewElastic;
                EditorUtility.SetDirty(tTarget);
            }

            if (tTarget.scrollViewElastic != null)
            {
                if (tTarget.isInteraction == false)
                {
                    EditorGUILayout.HelpBox(GetMessage("InteractionNone"), MessageType.Warning, true);
                }
            }
        }
        public static void AddScrollbar(string tType)
        {
            GameObject tGameObject = Selection.activeGameObject;

            if (tGameObject == null)
            {
                return;
            }

            if (WillLosePrefab(tGameObject) == false)
            {
                return;
            }

            Undo.RecordObject(tGameObject, "Add a child UI Scrollbar");                 // アンドウバッファに登録

            string tName = GetName <UIScrollbar>();

            if (string.IsNullOrEmpty(tType) == false)
            {
                tName = tName + "(" + tType + ")";
            }

            GameObject tChild = new GameObject(tName, typeof(RectTransform));

            Transform tTransform = tChild.transform;

            tTransform.SetParent(tGameObject.transform, false);
            tTransform.localPosition = Vector3.zero;
            tTransform.localRotation = Quaternion.identity;
            tTransform.localScale    = Vector3.one;

            UIScrollbar tScrollbar = tChild.AddComponent <UIScrollbar>();

            tScrollbar.SetDefault(tType);

            Selection.activeGameObject = tChild;

            UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene());
        }
        // スクロールバーの有無を表示
        protected void DrawScrollbar(UIScrollView tTarget)
        {
            EditorGUILayout.Separator();                // 少し区切りスペース

            // 横スクロールバー
            GUILayout.BeginHorizontal();                // 横並び
            {
                bool tIsHorizontalScrollbar = EditorGUILayout.Toggle(tTarget.isHorizontalScrollber, GUILayout.Width(16f));
                if (tIsHorizontalScrollbar != tTarget.isHorizontalScrollber)
                {
                    Undo.RecordObject(tTarget, "UIScrollView : Is Horizontal Scrollbar Change");                        // アンドウバッファに登録
                    tTarget.isHorizontalScrollber = tIsHorizontalScrollbar;
                    EditorUtility.SetDirty(tTarget);
                }
                GUILayout.Label("Horizontal Scrollbar", GUILayout.Width(120f));

                // 横位置
                UIScrollView.HorizontalScrollbarPosition tHorizontalScrollbarPosition = (UIScrollView.HorizontalScrollbarPosition)EditorGUILayout.EnumPopup("", tTarget.horizontalScrollbarPosition, GUILayout.Width(80f));
                if (tHorizontalScrollbarPosition != tTarget.horizontalScrollbarPosition)
                {
                    Undo.RecordObject(tTarget, "UIScrollView : Horizontal Scrollbar Position Change");                          // アンドウバッファに登録
                    tTarget.horizontalScrollbarPosition = tHorizontalScrollbarPosition;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

            UIScrollbar tHorizontalScrollbarElastic = EditorGUILayout.ObjectField("Elastic", tTarget.horizontalScrollbarElastic, typeof(UIScrollbar), true) as UIScrollbar;

            if (tHorizontalScrollbarElastic != tTarget.horizontalScrollbarElastic)
            {
                Undo.RecordObject(tTarget, "UIScrollView : Horizontal Scrollbar Elastic Change");                       // アンドウバッファに登録
                tTarget.horizontalScrollbarElastic = tHorizontalScrollbarElastic;
                EditorUtility.SetDirty(tTarget);
            }

            // 縦スクロールバー
            GUILayout.BeginHorizontal();                // 横並び
            {
                bool tIsVerticalScrollbar = EditorGUILayout.Toggle(tTarget.isVerticalScrollber, GUILayout.Width(16f));
                if (tIsVerticalScrollbar != tTarget.isVerticalScrollber)
                {
                    Undo.RecordObject(tTarget, "UIScrollView : Is Horizontal Scrollbar Change");                        // アンドウバッファに登録
                    tTarget.isVerticalScrollber = tIsVerticalScrollbar;
                    EditorUtility.SetDirty(tTarget);
                }
                GUILayout.Label("Vertical Scrollbar", GUILayout.Width(120f));

                // 縦位置
                UIScrollView.VerticalScrollbarPosition tVerticalScrollbarPosition = (UIScrollView.VerticalScrollbarPosition)EditorGUILayout.EnumPopup("", tTarget.verticalScrollbarPosition, GUILayout.Width(80f));
                if (tVerticalScrollbarPosition != tTarget.verticalScrollbarPosition)
                {
                    Undo.RecordObject(tTarget, "UIScrollView : Vertical Scrollbar Position Change");                            // アンドウバッファに登録
                    tTarget.verticalScrollbarPosition = tVerticalScrollbarPosition;
                    EditorUtility.SetDirty(tTarget);
                }
            }
            GUILayout.EndHorizontal();                          // 横並び終了

            UIScrollbar tVerticalScrollbarElastic = EditorGUILayout.ObjectField("Elastic", tTarget.verticalScrollbarElastic, typeof(UIScrollbar), true) as UIScrollbar;

            if (tVerticalScrollbarElastic != tTarget.verticalScrollbarElastic)
            {
                Undo.RecordObject(tTarget, "UIScrollView : Vertical Scrollbar Elastic Change");                         // アンドウバッファに登録
                tTarget.verticalScrollbarElastic = tVerticalScrollbarElastic;
                EditorUtility.SetDirty(tTarget);
            }

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

            bool tWarning = false;

            tWarning = false;
            if (tTarget.horizontalScrollbarElastic != null && tTarget.horizontalScrollbarElastic.scrollViewElastic == null)
            {
                tWarning = true;
            }
            if (tTarget.verticalScrollbarElastic != null && tTarget.verticalScrollbarElastic.scrollViewElastic == null)
            {
                tWarning = true;
            }
            if (tWarning == true)
            {
                EditorGUILayout.HelpBox(GetMessage("SetScrollView"), MessageType.Warning, true);
            }

            ScrollRectWrapper tScroll = tTarget.GetComponent <ScrollRectWrapper>();

            if (tScroll != null)
            {
                tWarning = false;
                if (tTarget.horizontalScrollbarElastic != null && tScroll.horizontalScrollbar != null)
                {
                    tWarning = true;
                }
                if (tTarget.verticalScrollbarElastic != null && tScroll.verticalScrollbar != null)
                {
                    tWarning = true;
                }
                if (tWarning == true)
                {
                    EditorGUILayout.HelpBox(GetMessage("ClearScrollBar"), MessageType.Warning, true);
                }
            }

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


            if (tTarget.isHorizontalScrollber == true || tTarget.horizontalScrollbarElastic != null || tTarget.isVerticalScrollber == true || tTarget.verticalScrollbarElastic != null)
            {
                // スクロールバーのフェード処理
                GUILayout.BeginHorizontal();                    // 横並び
                {
                    bool tScrollbarFadeEnebled = EditorGUILayout.Toggle(tTarget.scrollbarFadeEnabled, GUILayout.Width(16f));
                    if (tScrollbarFadeEnebled != tTarget.scrollbarFadeEnabled)
                    {
                        Undo.RecordObject(tTarget, "UIScrollView : Scrollbar Fade Enabled Change");                             // アンドウバッファに登録
                        tTarget.scrollbarFadeEnabled = tScrollbarFadeEnebled;
                        EditorUtility.SetDirty(tTarget);
//						UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene() ) ;
                    }
                    GUILayout.Label("Scrollbar Fade Enabled");
                }
                GUILayout.EndHorizontal();                              // 横並び終了


                if (tTarget.scrollbarFadeEnabled == true)
                {
                    if (tTarget.isInteraction == false && tTarget.isInteractionForScrollView == false)
                    {
                        EditorGUILayout.HelpBox(GetMessage("InteractionNone"), MessageType.Warning, true);
                    }

//					if( tTarget._scrollRect.verticalScrollbarVisibility != UnityEngine.UI.ScrollRect.ScrollbarVisibility.AutoHide )
//					{
//						EditorGUILayout.HelpBox( GetMessage( "SetAutoHide" ), MessageType.Warning, true ) ;
//					}

                    //				EditorGUIUtility.LookLikeControls( 120f, 40f ) ;	// デフォルトの見た目で横幅80

                    float tScrollbarFadeInDuration = EditorGUILayout.FloatField(" Duration In", tTarget.scrollbarFadeInDuration /*, GUILayout.Width( 120f ) */);
                    if (tScrollbarFadeInDuration != tTarget.scrollbarFadeInDuration)
                    {
                        Undo.RecordObject(tTarget, "UIScrollView : Scrollbar Fade In Duration");                                // アンドウバッファに登録
                        tTarget.scrollbarFadeInDuration = tScrollbarFadeInDuration;
                        EditorUtility.SetDirty(tTarget);
                    }

                    float tScrollbarFadeHoldDuration = EditorGUILayout.FloatField(" Duration Hold", tTarget.scrollbarFadeHoldDuration /*, GUILayout.Width( 120f ) */);
                    if (tScrollbarFadeHoldDuration != tTarget.scrollbarFadeHoldDuration)
                    {
                        Undo.RecordObject(tTarget, "UIScrollView : Scrollbar Fade Hold Duration");                              // アンドウバッファに登録
                        tTarget.scrollbarFadeHoldDuration = tScrollbarFadeHoldDuration;
                        EditorUtility.SetDirty(tTarget);
                    }

                    float tScrollbarFadeOutDuration = EditorGUILayout.FloatField(" Duration Out", tTarget.scrollbarFadeOutDuration /*, GUILayout.Width( 120f ) */);
                    if (tScrollbarFadeOutDuration != tTarget.scrollbarFadeOutDuration)
                    {
                        Undo.RecordObject(tTarget, "UIScrollView : Scrollbar Fade Out Duration");                               // アンドウバッファに登録
                        tTarget.scrollbarFadeOutDuration = tScrollbarFadeOutDuration;
                        EditorUtility.SetDirty(tTarget);
                    }



                    //				EditorGUIUtility.LookLikeControls( 120f, 40f ) ;	// デフォルトの見た目で横幅80


                    if (tTarget.horizontalScrollbar != null)
                    {
                        if (tTarget.horizontalScrollbar.GetComponent <CanvasGroup>() == null)
                        {
                            EditorGUILayout.HelpBox(GetMessage("HSB_CanvasGroupNone"), MessageType.Warning, true);
                        }
                    }
                    if (tTarget.verticalScrollbar != null)
                    {
                        if (tTarget.verticalScrollbar.GetComponent <CanvasGroup>() == null)
                        {
                            EditorGUILayout.HelpBox(GetMessage("VSB_CanvasGroupNone"), MessageType.Warning, true);
                        }
                    }
                }

                GUILayout.BeginHorizontal();                            // 横並び
                {
                    bool tHidingScrollbarIfContentFew = EditorGUILayout.Toggle(tTarget.hidingScrollbarIfContentFew, GUILayout.Width(16f));
                    if (tHidingScrollbarIfContentFew != tTarget.hidingScrollbarIfContentFew)
                    {
                        Undo.RecordObject(tTarget, "UIScrollView : Hiding Scrollbar If Content Few");                                           // アンドウバッファに登録
                        tTarget.hidingScrollbarIfContentFew = tHidingScrollbarIfContentFew;
                        EditorUtility.SetDirty(tTarget);
                    }
                    GUILayout.Label(" Hiding Scrollbar If Content Few");
                }
                GUILayout.EndHorizontal();                              // 横並び終了

                GUILayout.BeginHorizontal();                            // 横並び
                {
                    bool tInvalidateScrollIfContentFew = EditorGUILayout.Toggle(tTarget.invalidateScrollIfContentFew, GUILayout.Width(16f));
                    if (tInvalidateScrollIfContentFew != tTarget.invalidateScrollIfContentFew)
                    {
                        Undo.RecordObject(tTarget, "UIScrollView : Invalidate Scroll If Content Few");                                          // アンドウバッファに登録
                        tTarget.invalidateScrollIfContentFew = tInvalidateScrollIfContentFew;
                        EditorUtility.SetDirty(tTarget);
                    }
                    GUILayout.Label(" Invalidate Scroll If Content Few");
                }
                GUILayout.EndHorizontal();                                      // 横並び終了
            }
        }