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(); // 横並び終了 } }