Added Editor Menu Option to create a Min/Max slider
Resolves: https://github.com/Unity-UI-Extensions/com.unity.uiextensions/issues/270pull/413/head
parent
2848008f63
commit
4ffa631059
|
@ -807,7 +807,7 @@ namespace UnityEditor.UI
|
||||||
//Setup Template
|
//Setup Template
|
||||||
itemTemplate.name = "ItemTemplate";
|
itemTemplate.name = "ItemTemplate";
|
||||||
var itemTemplateRT = itemTemplate.GetComponent<RectTransform>();
|
var itemTemplateRT = itemTemplate.GetComponent<RectTransform>();
|
||||||
itemTemplateRT.sizeDelta = cbbRT.sizeDelta - new Vector2(10,0);
|
itemTemplateRT.sizeDelta = cbbRT.sizeDelta - new Vector2(10, 0);
|
||||||
itemTemplateRT.anchoredPosition = new Vector2(-5, 0);
|
itemTemplateRT.anchoredPosition = new Vector2(-5, 0);
|
||||||
var itemTemplateButton = itemTemplate.GetComponent<Button>();
|
var itemTemplateButton = itemTemplate.GetComponent<Button>();
|
||||||
itemTemplateButton.transition = Selectable.Transition.None;
|
itemTemplateButton.transition = Selectable.Transition.None;
|
||||||
|
@ -2067,64 +2067,72 @@ namespace UnityEditor.UI
|
||||||
[MenuItem("GameObject/UI/Extensions/Sliders/MinMax Slider", false)]
|
[MenuItem("GameObject/UI/Extensions/Sliders/MinMax Slider", false)]
|
||||||
static public void AddMinMaxSlider(MenuCommand menuCommand)
|
static public void AddMinMaxSlider(MenuCommand menuCommand)
|
||||||
{
|
{
|
||||||
GameObject minMaxSliderRoot = CreateUIElementRoot("MinMax Slider", menuCommand, new Vector2(390, 60));
|
GameObject minMaxSliderRoot = CreateUIElementRoot("Min Max Slider", menuCommand, new Vector2(390, 60));
|
||||||
|
|
||||||
//GameObject background = CreateUIObject("Background", rangeSliderRoot);
|
|
||||||
|
|
||||||
GameObject sliderBounds = CreateUIObject("Slider Bounds", minMaxSliderRoot);
|
GameObject sliderBounds = CreateUIObject("Slider Bounds", minMaxSliderRoot);
|
||||||
GameObject middleGraphic = CreateUIObject("Middle Graphic", minMaxSliderRoot);
|
GameObject middleGraphic = CreateUIObject("Middle Graphic", minMaxSliderRoot);
|
||||||
|
|
||||||
GameObject minHandle = CreateUIObject("Min Handle", minMaxSliderRoot);
|
GameObject minHandle = CreateUIObject("Min Handle", minMaxSliderRoot);
|
||||||
GameObject minHandleText = CreateUIObject("Min Text", minHandle);
|
GameObject minHandleText = CreateUIObject("Min Text", minHandle);
|
||||||
GameObject maxHandle = CreateUIObject("Max Handle", minMaxSliderRoot);
|
GameObject maxHandle = CreateUIObject("Max Handle", minMaxSliderRoot);
|
||||||
GameObject maxHandleText = CreateUIObject("Max Text", maxHandle);
|
GameObject maxHandleText = CreateUIObject("Max Text", maxHandle);
|
||||||
|
|
||||||
SetAnchorsAndStretch(minMaxSliderRoot);
|
|
||||||
Image backgroundImage = minMaxSliderRoot.AddComponent<Image>();
|
Image backgroundImage = minMaxSliderRoot.AddComponent<Image>();
|
||||||
backgroundImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
backgroundImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
||||||
backgroundImage.type = Image.Type.Sliced;
|
backgroundImage.type = Image.Type.Sliced;
|
||||||
backgroundImage.fillCenter = false;
|
backgroundImage.fillCenter = false;
|
||||||
backgroundImage.color = new Color(27, 41, 89);
|
backgroundImage.color = new Color32(27, 41, 89, 255);
|
||||||
|
backgroundImage.fillCenter = true;
|
||||||
RectTransform backgroundRect = backgroundImage.rectTransform;
|
|
||||||
backgroundRect.anchorMin = new Vector2(0.5f, 0.5f);
|
|
||||||
backgroundRect.anchorMax = new Vector2(0.5f, 0.5f);
|
|
||||||
backgroundRect.sizeDelta = Vector2.zero;
|
|
||||||
|
|
||||||
RectTransform sliderBoundsRect = SetAnchorsAndStretch(sliderBounds);
|
RectTransform sliderBoundsRect = SetAnchorsAndStretch(sliderBounds);
|
||||||
sliderBoundsRect.anchorMin = new Vector2(0, 0);
|
sliderBoundsRect.anchorMin = new Vector2(0, 0);
|
||||||
sliderBoundsRect.anchorMax = new Vector2(1, 1);
|
sliderBoundsRect.anchorMax = new Vector2(1, 1);
|
||||||
|
sliderBoundsRect.offsetMin = new Vector2(15, 0);
|
||||||
|
sliderBoundsRect.offsetMax = new Vector2(-15, 0);
|
||||||
|
|
||||||
RectTransform middleGraphicRect = SetAnchorsAndStretch(middleGraphic);
|
RectTransform middleGraphicRect = SetAnchorsAndStretch(middleGraphic);
|
||||||
|
middleGraphicRect.anchorMin = new Vector2(0, 0);
|
||||||
|
middleGraphicRect.anchorMax = new Vector2(1, 1);
|
||||||
|
middleGraphicRect.offsetMin = new Vector2(82, 0);
|
||||||
|
middleGraphicRect.offsetMax = new Vector2(-90, 0);
|
||||||
Image fillImage = middleGraphic.AddComponent<Image>();
|
Image fillImage = middleGraphic.AddComponent<Image>();
|
||||||
fillImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
fillImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
||||||
fillImage.type = Image.Type.Sliced;
|
fillImage.type = Image.Type.Sliced;
|
||||||
fillImage.fillCenter = true;
|
fillImage.fillCenter = true;
|
||||||
fillImage.color = new Color(41, 98, 164);
|
fillImage.color = new Color32(41, 98, 164, 255);
|
||||||
|
|
||||||
RectTransform minHandleRect = SetAnchorsAndStretch(minHandle);
|
RectTransform minHandleRect = SetAnchorsAndStretch(minHandle);
|
||||||
Image lowHandleImage = minHandle.AddComponent<Image>();
|
minHandleRect.anchorMin = new Vector2(0, 0.5f);
|
||||||
lowHandleImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
minHandleRect.anchorMax = new Vector2(0, 0.5f);
|
||||||
minHandleRect.sizeDelta = new Vector2(30, 62);
|
minHandleRect.sizeDelta = new Vector2(30, 62);
|
||||||
|
minHandleRect.anchoredPosition = new Vector3(82, 0, 0);
|
||||||
|
Image minHandleImage = minHandle.AddComponent<Image>();
|
||||||
|
minHandleImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
||||||
|
minHandleImage.type = Image.Type.Sliced;
|
||||||
|
minHandleImage.fillCenter = true;
|
||||||
|
|
||||||
RectTransform minHandleTextRect = SetAnchorsAndStretch(minHandleText);
|
RectTransform minHandleTextRect = SetAnchorsAndStretch(minHandleText);
|
||||||
TextMeshProUGUI minHandleTextComponent = minHandleText.AddComponent<TextMeshProUGUI>();
|
|
||||||
minHandleTextComponent.text = "0";
|
|
||||||
minHandleTextComponent.fontSize = 36;
|
|
||||||
minHandleTextRect.sizeDelta = new Vector2(70, 50);
|
minHandleTextRect.sizeDelta = new Vector2(70, 50);
|
||||||
minHandleTextRect.position = new Vector3(0, -60,0);
|
minHandleTextRect.anchoredPosition = new Vector3(0, 60, 0);
|
||||||
|
TextMeshProUGUI minHandleTextComponent = minHandleText.AddComponent<TextMeshProUGUI>();
|
||||||
|
minHandleTextComponent.fontSize = 36;
|
||||||
|
minHandleTextComponent.alignment = TextAlignmentOptions.Center;
|
||||||
|
|
||||||
|
|
||||||
RectTransform maxHandleRect = SetAnchorsAndStretch(maxHandle);
|
RectTransform maxHandleRect = SetAnchorsAndStretch(maxHandle);
|
||||||
|
maxHandleRect.anchorMin = new Vector2(1, 0.5f);
|
||||||
|
maxHandleRect.anchorMax = new Vector2(1, 0.5f);
|
||||||
|
maxHandleRect.sizeDelta = new Vector2(30, 62);
|
||||||
|
maxHandleRect.anchoredPosition = new Vector3(-82, 0, 0);
|
||||||
Image maxHandleImage = maxHandle.AddComponent<Image>();
|
Image maxHandleImage = maxHandle.AddComponent<Image>();
|
||||||
maxHandleImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
maxHandleImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
||||||
maxHandleRect.sizeDelta = new Vector2(20, 0);
|
maxHandleImage.type = Image.Type.Sliced;
|
||||||
|
maxHandleImage.fillCenter = true;
|
||||||
|
|
||||||
RectTransform maxHandleTextRect = SetAnchorsAndStretch(maxHandleText);
|
RectTransform maxHandleTextRect = SetAnchorsAndStretch(maxHandleText);
|
||||||
TextMeshProUGUI maxHandleTextComponent = maxHandleText.AddComponent<TextMeshProUGUI>();
|
|
||||||
maxHandleTextComponent.text = "0";
|
|
||||||
maxHandleTextComponent.fontSize = 36;
|
|
||||||
maxHandleTextRect.sizeDelta = new Vector2(70, 50);
|
maxHandleTextRect.sizeDelta = new Vector2(70, 50);
|
||||||
maxHandleTextRect.position = new Vector3(0, -60, 0);
|
maxHandleTextRect.anchoredPosition = new Vector3(0, 60, 0);
|
||||||
|
TextMeshProUGUI maxHandleTextComponent = maxHandleText.AddComponent<TextMeshProUGUI>();
|
||||||
|
maxHandleTextComponent.fontSize = 36;
|
||||||
|
maxHandleTextComponent.alignment = TextAlignmentOptions.Center;
|
||||||
|
|
||||||
MinMaxSlider minMaxSlider = minMaxSliderRoot.AddComponent<MinMaxSlider>();
|
MinMaxSlider minMaxSlider = minMaxSliderRoot.AddComponent<MinMaxSlider>();
|
||||||
minMaxSlider.SliderBounds = sliderBoundsRect;
|
minMaxSlider.SliderBounds = sliderBoundsRect;
|
||||||
|
@ -2134,6 +2142,8 @@ namespace UnityEditor.UI
|
||||||
minMaxSlider.MinText = minHandleTextComponent;
|
minMaxSlider.MinText = minHandleTextComponent;
|
||||||
minMaxSlider.MaxText = maxHandleTextComponent;
|
minMaxSlider.MaxText = maxHandleTextComponent;
|
||||||
|
|
||||||
|
minMaxSlider.SetValues(minMaxSlider.Values.minValue, minMaxSlider.Values.maxValue);
|
||||||
|
|
||||||
Selection.activeGameObject = minMaxSliderRoot;
|
Selection.activeGameObject = minMaxSliderRoot;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
Loading…
Reference in New Issue