Utility class for creating default implementations of builtin UI controls.
private static void SetParentAndAlign(GameObject child, GameObject parent) { if ((Object)parent == (Object)null) { return; } child.transform.SetParent(parent.transform, false); DefaultControls.SetLayerRecursively(child, parent.layer); }
public static GameObject CreateText(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Text", DefaultControls.s_ThickElementSize); Text lbl = uiElementRoot.AddComponent <Text>(); lbl.text = "New Text"; DefaultControls.SetDefaultTextValues(lbl); return(uiElementRoot); }
public static GameObject CreateText(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("Text", DefaultControls.s_ThickElementSize); Text text = gameObject.AddComponent <Text>(); text.text = "New Text"; DefaultControls.SetDefaultTextValues(text); return(gameObject); }
private static void SetLayerRecursively(GameObject go, int layer) { go.layer = layer; Transform transform = go.transform; for (int i = 0; i < transform.childCount; i++) { DefaultControls.SetLayerRecursively(transform.GetChild(i).gameObject, layer); } }
public static GameObject CreateSlider(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("Slider", DefaultControls.s_ThinElementSize); GameObject gameObject2 = DefaultControls.CreateUIObject("Background", gameObject); GameObject gameObject3 = DefaultControls.CreateUIObject("Fill Area", gameObject); GameObject gameObject4 = DefaultControls.CreateUIObject("Fill", gameObject3); GameObject gameObject5 = DefaultControls.CreateUIObject("Handle Slide Area", gameObject); GameObject gameObject6 = DefaultControls.CreateUIObject("Handle", gameObject5); Image image = gameObject2.AddComponent <Image>(); image.sprite = resources.background; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; RectTransform component = gameObject2.GetComponent <RectTransform>(); component.anchorMin = new Vector2(0f, 0.25f); component.anchorMax = new Vector2(1f, 0.75f); component.sizeDelta = new Vector2(0f, 0f); RectTransform component2 = gameObject3.GetComponent <RectTransform>(); component2.anchorMin = new Vector2(0f, 0.25f); component2.anchorMax = new Vector2(1f, 0.75f); component2.anchoredPosition = new Vector2(-5f, 0f); component2.sizeDelta = new Vector2(-20f, 0f); Image image2 = gameObject4.AddComponent <Image>(); image2.sprite = resources.standard; image2.type = Image.Type.Sliced; image2.color = DefaultControls.s_DefaultSelectableColor; RectTransform component3 = gameObject4.GetComponent <RectTransform>(); component3.sizeDelta = new Vector2(10f, 0f); RectTransform component4 = gameObject5.GetComponent <RectTransform>(); component4.sizeDelta = new Vector2(-20f, 0f); component4.anchorMin = new Vector2(0f, 0f); component4.anchorMax = new Vector2(1f, 1f); Image image3 = gameObject6.AddComponent <Image>(); image3.sprite = resources.knob; image3.color = DefaultControls.s_DefaultSelectableColor; RectTransform component5 = gameObject6.GetComponent <RectTransform>(); component5.sizeDelta = new Vector2(20f, 0f); Slider slider = gameObject.AddComponent <Slider>(); slider.fillRect = gameObject4.GetComponent <RectTransform>(); slider.handleRect = gameObject6.GetComponent <RectTransform>(); slider.targetGraphic = image3; slider.direction = Slider.Direction.LeftToRight; DefaultControls.SetDefaultColorTransitionValues(slider); return(gameObject); }
public static GameObject CreatePanel(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Panel", DefaultControls.s_ThickElementSize); RectTransform component = uiElementRoot.GetComponent<RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.one; component.anchoredPosition = Vector2.zero; component.sizeDelta = Vector2.zero; Image image = uiElementRoot.AddComponent<Image>(); image.sprite = resources.background; image.type = Image.Type.Sliced; image.color = DefaultControls.s_PanelColor; return uiElementRoot; }
public static GameObject CreatePanel(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("Panel", DefaultControls.s_ThickElementSize); RectTransform component = gameObject.GetComponent <RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.one; component.anchoredPosition = Vector2.zero; component.sizeDelta = Vector2.zero; Image image = gameObject.AddComponent <Image>(); image.sprite = resources.background; image.type = Image.Type.Sliced; image.color = DefaultControls.s_PanelColor; return(gameObject); }
public static GameObject CreateInputField(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("InputField", DefaultControls.s_ThickElementSize); GameObject uiObject1 = DefaultControls.CreateUIObject("Placeholder", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Text", uiElementRoot); Image image = uiElementRoot.AddComponent <Image>(); image.sprite = resources.inputField; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; InputField inputField = uiElementRoot.AddComponent <InputField>(); DefaultControls.SetDefaultColorTransitionValues((Selectable)inputField); Text lbl = uiObject2.AddComponent <Text>(); lbl.text = string.Empty; lbl.supportRichText = false; DefaultControls.SetDefaultTextValues(lbl); Text text = uiObject1.AddComponent <Text>(); text.text = "Enter text..."; text.fontStyle = FontStyle.Italic; Color color = lbl.color; color.a *= 0.5f; text.color = color; RectTransform component1 = uiObject2.GetComponent <RectTransform>(); component1.anchorMin = Vector2.zero; component1.anchorMax = Vector2.one; component1.sizeDelta = Vector2.zero; component1.offsetMin = new Vector2(10f, 6f); component1.offsetMax = new Vector2(-10f, -7f); RectTransform component2 = uiObject1.GetComponent <RectTransform>(); component2.anchorMin = Vector2.zero; component2.anchorMax = Vector2.one; component2.sizeDelta = Vector2.zero; component2.offsetMin = new Vector2(10f, 6f); component2.offsetMax = new Vector2(-10f, -7f); inputField.textComponent = lbl; inputField.placeholder = (Graphic)text; return(uiElementRoot); }
public static GameObject CreateToggle(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("Toggle", DefaultControls.s_ThinElementSize); GameObject gameObject2 = DefaultControls.CreateUIObject("Background", gameObject); GameObject gameObject3 = DefaultControls.CreateUIObject("Checkmark", gameObject2); GameObject gameObject4 = DefaultControls.CreateUIObject("Label", gameObject); Toggle toggle = gameObject.AddComponent <Toggle>(); toggle.isOn = true; Image image = gameObject2.AddComponent <Image>(); image.sprite = resources.standard; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; Image image2 = gameObject3.AddComponent <Image>(); image2.sprite = resources.checkmark; Text text = gameObject4.AddComponent <Text>(); text.text = "Toggle"; DefaultControls.SetDefaultTextValues(text); toggle.graphic = image2; toggle.targetGraphic = image; DefaultControls.SetDefaultColorTransitionValues(toggle); RectTransform component = gameObject2.GetComponent <RectTransform>(); component.anchorMin = new Vector2(0f, 1f); component.anchorMax = new Vector2(0f, 1f); component.anchoredPosition = new Vector2(10f, -10f); component.sizeDelta = new Vector2(20f, 20f); RectTransform component2 = gameObject3.GetComponent <RectTransform>(); component2.anchorMin = new Vector2(0.5f, 0.5f); component2.anchorMax = new Vector2(0.5f, 0.5f); component2.anchoredPosition = Vector2.zero; component2.sizeDelta = new Vector2(20f, 20f); RectTransform component3 = gameObject4.GetComponent <RectTransform>(); component3.anchorMin = new Vector2(0f, 0f); component3.anchorMax = new Vector2(1f, 1f); component3.offsetMin = new Vector2(23f, 1f); component3.offsetMax = new Vector2(-5f, -2f); return(gameObject); }
public static GameObject CreateInputField(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("InputField", DefaultControls.s_ThickElementSize); GameObject gameObject2 = DefaultControls.CreateUIObject("Placeholder", gameObject); GameObject gameObject3 = DefaultControls.CreateUIObject("Text", gameObject); Image image = gameObject.AddComponent <Image>(); image.sprite = resources.inputField; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; InputField inputField = gameObject.AddComponent <InputField>(); DefaultControls.SetDefaultColorTransitionValues(inputField); Text text = gameObject3.AddComponent <Text>(); text.text = ""; text.supportRichText = false; DefaultControls.SetDefaultTextValues(text); Text text2 = gameObject2.AddComponent <Text>(); text2.text = "Enter text..."; text2.fontStyle = FontStyle.Italic; Color color = text.color; color.a *= 0.5f; text2.color = color; RectTransform component = gameObject3.GetComponent <RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.one; component.sizeDelta = Vector2.zero; component.offsetMin = new Vector2(10f, 6f); component.offsetMax = new Vector2(-10f, -7f); RectTransform component2 = gameObject2.GetComponent <RectTransform>(); component2.anchorMin = Vector2.zero; component2.anchorMax = Vector2.one; component2.sizeDelta = Vector2.zero; component2.offsetMin = new Vector2(10f, 6f); component2.offsetMax = new Vector2(-10f, -7f); inputField.textComponent = text; inputField.placeholder = text2; return(gameObject); }
public static GameObject CreateLoopVerticalScrollRect(DefaultControls.Resources resources) { GameObject root = CreateUIElementRoot("Loop Vertical Scroll Rect", new Vector2(200, 200)); GameObject content = CreateUIObject("Content", root); RectTransform contentRT = content.GetComponent<RectTransform>(); contentRT.anchorMin = new Vector2(0.5f, 1); contentRT.anchorMax = new Vector2(0.5f, 1); contentRT.sizeDelta = new Vector2(200, 0); contentRT.pivot = new Vector2(0.5f, 1); // Setup UI components. LoopVerticalScrollRect scrollRect = root.AddComponent<LoopVerticalScrollRect>(); scrollRect.content = contentRT; scrollRect.viewport = null; scrollRect.horizontalScrollbar = null; scrollRect.verticalScrollbar = null; scrollRect.horizontal = false; scrollRect.vertical = true; scrollRect.horizontalScrollbarVisibility = LoopScrollRect.ScrollbarVisibility.Permanent; scrollRect.verticalScrollbarVisibility = LoopScrollRect.ScrollbarVisibility.Permanent; scrollRect.horizontalScrollbarSpacing = 0; scrollRect.verticalScrollbarSpacing = 0; root.AddComponent<RectMask2D>(); VerticalLayoutGroup layoutGroup = content.AddComponent<VerticalLayoutGroup>(); layoutGroup.childAlignment = TextAnchor.UpperCenter; layoutGroup.childForceExpandWidth = true; layoutGroup.childForceExpandHeight = false; ContentSizeFitter sizeFitter = content.AddComponent<ContentSizeFitter>(); sizeFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained; sizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize; return root; }
private Image NewImage() { var resources = new DefaultControls.Resources(); var go = DefaultControls.CreateImage(resources); if (Application.isPlaying) { GameObject.DontDestroyOnLoad(go); } go.layer = gameObject.layer; var rt = go.transform as RectTransform; if (rt) { rt.SetParent(rectTransform); rt.localPosition = Vector3.zero; rt.localRotation = Quaternion.identity; rt.localScale = Vector3.one; } Image img = go.GetComponent <Image>(); img.raycastTarget = false; return(img); }
public static GameObject CreateButton(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Button", DefaultControls.s_ThickElementSize); GameObject child = new GameObject("Text"); DefaultControls.SetParentAndAlign(child, uiElementRoot); Image image = uiElementRoot.AddComponent <Image>(); image.sprite = resources.standard; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; DefaultControls.SetDefaultColorTransitionValues((Selectable)uiElementRoot.AddComponent <Button>()); Text lbl = child.AddComponent <Text>(); lbl.text = "Button"; lbl.alignment = TextAnchor.MiddleCenter; DefaultControls.SetDefaultTextValues(lbl); RectTransform component = child.GetComponent <RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.one; component.sizeDelta = Vector2.zero; return(uiElementRoot); }
public static GameObject CreateScrollView(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("Scroll View", new Vector2(200f, 200f)); GameObject gameObject2 = DefaultControls.CreateUIObject("Viewport", gameObject); GameObject gameObject3 = DefaultControls.CreateUIObject("Content", gameObject2); GameObject gameObject4 = DefaultControls.CreateScrollbar(resources); gameObject4.name = "Scrollbar Horizontal"; DefaultControls.SetParentAndAlign(gameObject4, gameObject); RectTransform component = gameObject4.GetComponent <RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.right; component.pivot = Vector2.zero; component.sizeDelta = new Vector2(0f, component.sizeDelta.y); GameObject gameObject5 = DefaultControls.CreateScrollbar(resources); gameObject5.name = "Scrollbar Vertical"; DefaultControls.SetParentAndAlign(gameObject5, gameObject); gameObject5.GetComponent <Scrollbar>().SetDirection(Scrollbar.Direction.BottomToTop, true); RectTransform component2 = gameObject5.GetComponent <RectTransform>(); component2.anchorMin = Vector2.right; component2.anchorMax = Vector2.one; component2.pivot = Vector2.one; component2.sizeDelta = new Vector2(component2.sizeDelta.x, 0f); RectTransform component3 = gameObject2.GetComponent <RectTransform>(); component3.anchorMin = Vector2.zero; component3.anchorMax = Vector2.one; component3.sizeDelta = Vector2.zero; component3.pivot = Vector2.up; RectTransform component4 = gameObject3.GetComponent <RectTransform>(); component4.anchorMin = Vector2.up; component4.anchorMax = Vector2.one; component4.sizeDelta = new Vector2(0f, 300f); component4.pivot = Vector2.up; ScrollRect scrollRect = gameObject.AddComponent <ScrollRect>(); scrollRect.content = component4; scrollRect.viewport = component3; scrollRect.horizontalScrollbar = gameObject4.GetComponent <Scrollbar>(); scrollRect.verticalScrollbar = gameObject5.GetComponent <Scrollbar>(); scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.horizontalScrollbarSpacing = -3f; scrollRect.verticalScrollbarSpacing = -3f; Image image = gameObject.AddComponent <Image>(); image.sprite = resources.background; image.type = Image.Type.Sliced; image.color = DefaultControls.s_PanelColor; Mask mask = gameObject2.AddComponent <Mask>(); mask.showMaskGraphic = false; Image image2 = gameObject2.AddComponent <Image>(); image2.sprite = resources.mask; image2.type = Image.Type.Sliced; return(gameObject); }
public static GameObject CreateDropdown(DefaultControls.Resources resources) { GameObject gameObject = DefaultControls.CreateUIElementRoot("Dropdown", DefaultControls.s_ThickElementSize); GameObject gameObject2 = DefaultControls.CreateUIObject("Label", gameObject); GameObject gameObject3 = DefaultControls.CreateUIObject("Arrow", gameObject); GameObject gameObject4 = DefaultControls.CreateUIObject("Template", gameObject); GameObject gameObject5 = DefaultControls.CreateUIObject("Viewport", gameObject4); GameObject gameObject6 = DefaultControls.CreateUIObject("Content", gameObject5); GameObject gameObject7 = DefaultControls.CreateUIObject("Item", gameObject6); GameObject gameObject8 = DefaultControls.CreateUIObject("Item Background", gameObject7); GameObject gameObject9 = DefaultControls.CreateUIObject("Item Checkmark", gameObject7); GameObject gameObject10 = DefaultControls.CreateUIObject("Item Label", gameObject7); GameObject gameObject11 = DefaultControls.CreateScrollbar(resources); gameObject11.name = "Scrollbar"; DefaultControls.SetParentAndAlign(gameObject11, gameObject4); Scrollbar component = gameObject11.GetComponent <Scrollbar>(); component.SetDirection(Scrollbar.Direction.BottomToTop, true); RectTransform component2 = gameObject11.GetComponent <RectTransform>(); component2.anchorMin = Vector2.right; component2.anchorMax = Vector2.one; component2.pivot = Vector2.one; component2.sizeDelta = new Vector2(component2.sizeDelta.x, 0f); Text text = gameObject10.AddComponent <Text>(); DefaultControls.SetDefaultTextValues(text); text.alignment = TextAnchor.MiddleLeft; Image image = gameObject8.AddComponent <Image>(); image.color = new Color32(245, 245, 245, byte.MaxValue); Image image2 = gameObject9.AddComponent <Image>(); image2.sprite = resources.checkmark; Toggle toggle = gameObject7.AddComponent <Toggle>(); toggle.targetGraphic = image; toggle.graphic = image2; toggle.isOn = true; Image image3 = gameObject4.AddComponent <Image>(); image3.sprite = resources.standard; image3.type = Image.Type.Sliced; ScrollRect scrollRect = gameObject4.AddComponent <ScrollRect>(); scrollRect.content = (RectTransform)gameObject6.transform; scrollRect.viewport = (RectTransform)gameObject5.transform; scrollRect.horizontal = false; scrollRect.movementType = ScrollRect.MovementType.Clamped; scrollRect.verticalScrollbar = component; scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.verticalScrollbarSpacing = -3f; Mask mask = gameObject5.AddComponent <Mask>(); mask.showMaskGraphic = false; Image image4 = gameObject5.AddComponent <Image>(); image4.sprite = resources.mask; image4.type = Image.Type.Sliced; Text text2 = gameObject2.AddComponent <Text>(); DefaultControls.SetDefaultTextValues(text2); text2.alignment = TextAnchor.MiddleLeft; Image image5 = gameObject3.AddComponent <Image>(); image5.sprite = resources.dropdown; Image image6 = gameObject.AddComponent <Image>(); image6.sprite = resources.standard; image6.color = DefaultControls.s_DefaultSelectableColor; image6.type = Image.Type.Sliced; Dropdown dropdown = gameObject.AddComponent <Dropdown>(); dropdown.targetGraphic = image6; DefaultControls.SetDefaultColorTransitionValues(dropdown); dropdown.template = gameObject4.GetComponent <RectTransform>(); dropdown.captionText = text2; dropdown.itemText = text; text.text = "Option A"; dropdown.options.Add(new Dropdown.OptionData { text = "Option A" }); dropdown.options.Add(new Dropdown.OptionData { text = "Option B" }); dropdown.options.Add(new Dropdown.OptionData { text = "Option C" }); dropdown.RefreshShownValue(); RectTransform component3 = gameObject2.GetComponent <RectTransform>(); component3.anchorMin = Vector2.zero; component3.anchorMax = Vector2.one; component3.offsetMin = new Vector2(10f, 6f); component3.offsetMax = new Vector2(-25f, -7f); RectTransform component4 = gameObject3.GetComponent <RectTransform>(); component4.anchorMin = new Vector2(1f, 0.5f); component4.anchorMax = new Vector2(1f, 0.5f); component4.sizeDelta = new Vector2(20f, 20f); component4.anchoredPosition = new Vector2(-15f, 0f); RectTransform component5 = gameObject4.GetComponent <RectTransform>(); component5.anchorMin = new Vector2(0f, 0f); component5.anchorMax = new Vector2(1f, 0f); component5.pivot = new Vector2(0.5f, 1f); component5.anchoredPosition = new Vector2(0f, 2f); component5.sizeDelta = new Vector2(0f, 150f); RectTransform component6 = gameObject5.GetComponent <RectTransform>(); component6.anchorMin = new Vector2(0f, 0f); component6.anchorMax = new Vector2(1f, 1f); component6.sizeDelta = new Vector2(-18f, 0f); component6.pivot = new Vector2(0f, 1f); RectTransform component7 = gameObject6.GetComponent <RectTransform>(); component7.anchorMin = new Vector2(0f, 1f); component7.anchorMax = new Vector2(1f, 1f); component7.pivot = new Vector2(0.5f, 1f); component7.anchoredPosition = new Vector2(0f, 0f); component7.sizeDelta = new Vector2(0f, 28f); RectTransform component8 = gameObject7.GetComponent <RectTransform>(); component8.anchorMin = new Vector2(0f, 0.5f); component8.anchorMax = new Vector2(1f, 0.5f); component8.sizeDelta = new Vector2(0f, 20f); RectTransform component9 = gameObject8.GetComponent <RectTransform>(); component9.anchorMin = Vector2.zero; component9.anchorMax = Vector2.one; component9.sizeDelta = Vector2.zero; RectTransform component10 = gameObject9.GetComponent <RectTransform>(); component10.anchorMin = new Vector2(0f, 0.5f); component10.anchorMax = new Vector2(0f, 0.5f); component10.sizeDelta = new Vector2(20f, 20f); component10.anchoredPosition = new Vector2(10f, 0f); RectTransform component11 = gameObject10.GetComponent <RectTransform>(); component11.anchorMin = Vector2.zero; component11.anchorMax = Vector2.one; component11.offsetMin = new Vector2(20f, 1f); component11.offsetMax = new Vector2(-10f, -2f); gameObject4.SetActive(false); return(gameObject); }
public static GameObject CreateSlider(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Slider", DefaultControls.s_ThinElementSize); GameObject uiObject1 = DefaultControls.CreateUIObject("Background", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Fill Area", uiElementRoot); GameObject uiObject3 = DefaultControls.CreateUIObject("Fill", uiObject2); GameObject uiObject4 = DefaultControls.CreateUIObject("Handle Slide Area", uiElementRoot); GameObject uiObject5 = DefaultControls.CreateUIObject("Handle", uiObject4); Image image1 = uiObject1.AddComponent<Image>(); image1.sprite = resources.background; image1.type = Image.Type.Sliced; image1.color = DefaultControls.s_DefaultSelectableColor; RectTransform component1 = uiObject1.GetComponent<RectTransform>(); component1.anchorMin = new Vector2(0.0f, 0.25f); component1.anchorMax = new Vector2(1f, 0.75f); component1.sizeDelta = new Vector2(0.0f, 0.0f); RectTransform component2 = uiObject2.GetComponent<RectTransform>(); component2.anchorMin = new Vector2(0.0f, 0.25f); component2.anchorMax = new Vector2(1f, 0.75f); component2.anchoredPosition = new Vector2(-5f, 0.0f); component2.sizeDelta = new Vector2(-20f, 0.0f); Image image2 = uiObject3.AddComponent<Image>(); image2.sprite = resources.standard; image2.type = Image.Type.Sliced; image2.color = DefaultControls.s_DefaultSelectableColor; uiObject3.GetComponent<RectTransform>().sizeDelta = new Vector2(10f, 0.0f); RectTransform component3 = uiObject4.GetComponent<RectTransform>(); component3.sizeDelta = new Vector2(-20f, 0.0f); component3.anchorMin = new Vector2(0.0f, 0.0f); component3.anchorMax = new Vector2(1f, 1f); Image image3 = uiObject5.AddComponent<Image>(); image3.sprite = resources.knob; image3.color = DefaultControls.s_DefaultSelectableColor; uiObject5.GetComponent<RectTransform>().sizeDelta = new Vector2(20f, 0.0f); Slider slider = uiElementRoot.AddComponent<Slider>(); slider.fillRect = uiObject3.GetComponent<RectTransform>(); slider.handleRect = uiObject5.GetComponent<RectTransform>(); slider.targetGraphic = (Graphic) image3; slider.direction = Slider.Direction.LeftToRight; DefaultControls.SetDefaultColorTransitionValues((Selectable) slider); return uiElementRoot; }
public static GameObject CreateScrollbar(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Scrollbar", DefaultControls.s_ThinElementSize); GameObject uiObject1 = DefaultControls.CreateUIObject("Sliding Area", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Handle", uiObject1); Image image1 = uiElementRoot.AddComponent<Image>(); image1.sprite = resources.background; image1.type = Image.Type.Sliced; image1.color = DefaultControls.s_DefaultSelectableColor; Image image2 = uiObject2.AddComponent<Image>(); image2.sprite = resources.standard; image2.type = Image.Type.Sliced; image2.color = DefaultControls.s_DefaultSelectableColor; RectTransform component1 = uiObject1.GetComponent<RectTransform>(); component1.sizeDelta = new Vector2(-20f, -20f); component1.anchorMin = Vector2.zero; component1.anchorMax = Vector2.one; RectTransform component2 = uiObject2.GetComponent<RectTransform>(); component2.sizeDelta = new Vector2(20f, 20f); Scrollbar scrollbar = uiElementRoot.AddComponent<Scrollbar>(); scrollbar.handleRect = component2; scrollbar.targetGraphic = (Graphic) image2; DefaultControls.SetDefaultColorTransitionValues((Selectable) scrollbar); return uiElementRoot; }
public static GameObject CreateDropdown(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Dropdown", DefaultControls.s_ThickElementSize); GameObject uiObject1 = DefaultControls.CreateUIObject("Label", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Arrow", uiElementRoot); GameObject uiObject3 = DefaultControls.CreateUIObject("Template", uiElementRoot); GameObject uiObject4 = DefaultControls.CreateUIObject("Viewport", uiObject3); GameObject uiObject5 = DefaultControls.CreateUIObject("Content", uiObject4); GameObject uiObject6 = DefaultControls.CreateUIObject("Item", uiObject5); GameObject uiObject7 = DefaultControls.CreateUIObject("Item Background", uiObject6); GameObject uiObject8 = DefaultControls.CreateUIObject("Item Checkmark", uiObject6); GameObject uiObject9 = DefaultControls.CreateUIObject("Item Label", uiObject6); GameObject scrollbar = DefaultControls.CreateScrollbar(resources); scrollbar.name = "Scrollbar"; DefaultControls.SetParentAndAlign(scrollbar, uiObject3); Scrollbar component1 = scrollbar.GetComponent<Scrollbar>(); component1.SetDirection(Scrollbar.Direction.BottomToTop, true); RectTransform component2 = scrollbar.GetComponent<RectTransform>(); component2.anchorMin = Vector2.right; component2.anchorMax = Vector2.one; component2.pivot = Vector2.one; component2.sizeDelta = new Vector2(component2.sizeDelta.x, 0.0f); Text lbl1 = uiObject9.AddComponent<Text>(); DefaultControls.SetDefaultTextValues(lbl1); lbl1.alignment = TextAnchor.MiddleLeft; Image image1 = uiObject7.AddComponent<Image>(); image1.color = (Color) new Color32((byte) 245, (byte) 245, (byte) 245, byte.MaxValue); Image image2 = uiObject8.AddComponent<Image>(); image2.sprite = resources.checkmark; Toggle toggle = uiObject6.AddComponent<Toggle>(); toggle.targetGraphic = (Graphic) image1; toggle.graphic = (Graphic) image2; toggle.isOn = true; Image image3 = uiObject3.AddComponent<Image>(); image3.sprite = resources.standard; image3.type = Image.Type.Sliced; ScrollRect scrollRect = uiObject3.AddComponent<ScrollRect>(); scrollRect.content = (RectTransform) uiObject5.transform; scrollRect.viewport = (RectTransform) uiObject4.transform; scrollRect.horizontal = false; scrollRect.movementType = ScrollRect.MovementType.Clamped; scrollRect.verticalScrollbar = component1; scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.verticalScrollbarSpacing = -3f; uiObject4.AddComponent<Mask>().showMaskGraphic = false; Image image4 = uiObject4.AddComponent<Image>(); image4.sprite = resources.mask; image4.type = Image.Type.Sliced; Text lbl2 = uiObject1.AddComponent<Text>(); DefaultControls.SetDefaultTextValues(lbl2); lbl2.alignment = TextAnchor.MiddleLeft; uiObject2.AddComponent<Image>().sprite = resources.dropdown; Image image5 = uiElementRoot.AddComponent<Image>(); image5.sprite = resources.standard; image5.color = DefaultControls.s_DefaultSelectableColor; image5.type = Image.Type.Sliced; Dropdown dropdown = uiElementRoot.AddComponent<Dropdown>(); dropdown.targetGraphic = (Graphic) image5; DefaultControls.SetDefaultColorTransitionValues((Selectable) dropdown); dropdown.template = uiObject3.GetComponent<RectTransform>(); dropdown.captionText = lbl2; dropdown.itemText = lbl1; lbl1.text = "Option A"; dropdown.options.Add(new Dropdown.OptionData() { text = "Option A" }); dropdown.options.Add(new Dropdown.OptionData() { text = "Option B" }); dropdown.options.Add(new Dropdown.OptionData() { text = "Option C" }); dropdown.RefreshShownValue(); RectTransform component3 = uiObject1.GetComponent<RectTransform>(); component3.anchorMin = Vector2.zero; component3.anchorMax = Vector2.one; component3.offsetMin = new Vector2(10f, 6f); component3.offsetMax = new Vector2(-25f, -7f); RectTransform component4 = uiObject2.GetComponent<RectTransform>(); component4.anchorMin = new Vector2(1f, 0.5f); component4.anchorMax = new Vector2(1f, 0.5f); component4.sizeDelta = new Vector2(20f, 20f); component4.anchoredPosition = new Vector2(-15f, 0.0f); RectTransform component5 = uiObject3.GetComponent<RectTransform>(); component5.anchorMin = new Vector2(0.0f, 0.0f); component5.anchorMax = new Vector2(1f, 0.0f); component5.pivot = new Vector2(0.5f, 1f); component5.anchoredPosition = new Vector2(0.0f, 2f); component5.sizeDelta = new Vector2(0.0f, 150f); RectTransform component6 = uiObject4.GetComponent<RectTransform>(); component6.anchorMin = new Vector2(0.0f, 0.0f); component6.anchorMax = new Vector2(1f, 1f); component6.sizeDelta = new Vector2(-18f, 0.0f); component6.pivot = new Vector2(0.0f, 1f); RectTransform component7 = uiObject5.GetComponent<RectTransform>(); component7.anchorMin = new Vector2(0.0f, 1f); component7.anchorMax = new Vector2(1f, 1f); component7.pivot = new Vector2(0.5f, 1f); component7.anchoredPosition = new Vector2(0.0f, 0.0f); component7.sizeDelta = new Vector2(0.0f, 28f); RectTransform component8 = uiObject6.GetComponent<RectTransform>(); component8.anchorMin = new Vector2(0.0f, 0.5f); component8.anchorMax = new Vector2(1f, 0.5f); component8.sizeDelta = new Vector2(0.0f, 20f); RectTransform component9 = uiObject7.GetComponent<RectTransform>(); component9.anchorMin = Vector2.zero; component9.anchorMax = Vector2.one; component9.sizeDelta = Vector2.zero; RectTransform component10 = uiObject8.GetComponent<RectTransform>(); component10.anchorMin = new Vector2(0.0f, 0.5f); component10.anchorMax = new Vector2(0.0f, 0.5f); component10.sizeDelta = new Vector2(20f, 20f); component10.anchoredPosition = new Vector2(10f, 0.0f); RectTransform component11 = uiObject9.GetComponent<RectTransform>(); component11.anchorMin = Vector2.zero; component11.anchorMax = Vector2.one; component11.offsetMin = new Vector2(20f, 1f); component11.offsetMax = new Vector2(-10f, -2f); uiObject3.SetActive(false); return uiElementRoot; }
public static GameObject CreateToggle(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Toggle", DefaultControls.s_ThinElementSize); GameObject uiObject1 = DefaultControls.CreateUIObject("Background", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Checkmark", uiObject1); GameObject uiObject3 = DefaultControls.CreateUIObject("Label", uiElementRoot); Toggle toggle = uiElementRoot.AddComponent<Toggle>(); toggle.isOn = true; Image image1 = uiObject1.AddComponent<Image>(); image1.sprite = resources.standard; image1.type = Image.Type.Sliced; image1.color = DefaultControls.s_DefaultSelectableColor; Image image2 = uiObject2.AddComponent<Image>(); image2.sprite = resources.checkmark; Text lbl = uiObject3.AddComponent<Text>(); lbl.text = "Toggle"; DefaultControls.SetDefaultTextValues(lbl); toggle.graphic = (Graphic) image2; toggle.targetGraphic = (Graphic) image1; DefaultControls.SetDefaultColorTransitionValues((Selectable) toggle); RectTransform component1 = uiObject1.GetComponent<RectTransform>(); component1.anchorMin = new Vector2(0.0f, 1f); component1.anchorMax = new Vector2(0.0f, 1f); component1.anchoredPosition = new Vector2(10f, -10f); component1.sizeDelta = new Vector2(20f, 20f); RectTransform component2 = uiObject2.GetComponent<RectTransform>(); component2.anchorMin = new Vector2(0.5f, 0.5f); component2.anchorMax = new Vector2(0.5f, 0.5f); component2.anchoredPosition = Vector2.zero; component2.sizeDelta = new Vector2(20f, 20f); RectTransform component3 = uiObject3.GetComponent<RectTransform>(); component3.anchorMin = new Vector2(0.0f, 0.0f); component3.anchorMax = new Vector2(1f, 1f); component3.offsetMin = new Vector2(23f, 1f); component3.offsetMax = new Vector2(-5f, -2f); return uiElementRoot; }
public static GameObject CreateText(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Text", DefaultControls.s_ThickElementSize); Text lbl = uiElementRoot.AddComponent<Text>(); lbl.text = "New Text"; DefaultControls.SetDefaultTextValues(lbl); return uiElementRoot; }
public static GameObject CreateInputField(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("InputField", DefaultControls.s_ThickElementSize); GameObject uiObject1 = DefaultControls.CreateUIObject("Placeholder", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Text", uiElementRoot); Image image = uiElementRoot.AddComponent<Image>(); image.sprite = resources.inputField; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; InputField inputField = uiElementRoot.AddComponent<InputField>(); DefaultControls.SetDefaultColorTransitionValues((Selectable) inputField); Text lbl = uiObject2.AddComponent<Text>(); lbl.text = string.Empty; lbl.supportRichText = false; DefaultControls.SetDefaultTextValues(lbl); Text text = uiObject1.AddComponent<Text>(); text.text = "Enter text..."; text.fontStyle = FontStyle.Italic; Color color = lbl.color; color.a *= 0.5f; text.color = color; RectTransform component1 = uiObject2.GetComponent<RectTransform>(); component1.anchorMin = Vector2.zero; component1.anchorMax = Vector2.one; component1.sizeDelta = Vector2.zero; component1.offsetMin = new Vector2(10f, 6f); component1.offsetMax = new Vector2(-10f, -7f); RectTransform component2 = uiObject1.GetComponent<RectTransform>(); component2.anchorMin = Vector2.zero; component2.anchorMax = Vector2.one; component2.sizeDelta = Vector2.zero; component2.offsetMin = new Vector2(10f, 6f); component2.offsetMax = new Vector2(-10f, -7f); inputField.textComponent = lbl; inputField.placeholder = (Graphic) text; return uiElementRoot; }
public static GameObject CreateButton(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Button", DefaultControls.s_ThickElementSize); GameObject child = new GameObject("Text"); DefaultControls.SetParentAndAlign(child, uiElementRoot); Image image = uiElementRoot.AddComponent<Image>(); image.sprite = resources.standard; image.type = Image.Type.Sliced; image.color = DefaultControls.s_DefaultSelectableColor; DefaultControls.SetDefaultColorTransitionValues((Selectable) uiElementRoot.AddComponent<Button>()); Text lbl = child.AddComponent<Text>(); lbl.text = "Button"; lbl.alignment = TextAnchor.MiddleCenter; DefaultControls.SetDefaultTextValues(lbl); RectTransform component = child.GetComponent<RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.one; component.sizeDelta = Vector2.zero; return uiElementRoot; }
public static GameObject CreateRawImage(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("RawImage", DefaultControls.s_ImageElementSize); uiElementRoot.AddComponent<RawImage>(); return uiElementRoot; }
protected void UpdateQuadImage() { #if UNITY_EDITOR && !UNITY_2018_3_OR_NEWER if (UnityEditor.PrefabUtility.GetPrefabType(this) == UnityEditor.PrefabType.Prefab) { return; } #endif m_OutputText = GetOutputText(); matches = s_Regex.Matches(m_OutputText); if (matches != null && matches.Count > 0) { for (int i = 0; i < matches.Count; i++) { m_ImagesPool.RemoveAll(image => image == null); if (m_ImagesPool.Count == 0) { GetComponentsInChildren <Image>(true, m_ImagesPool); } if (matches.Count > m_ImagesPool.Count) { DefaultControls.Resources resources = new DefaultControls.Resources(); GameObject go = DefaultControls.CreateImage(resources); go.layer = gameObject.layer; RectTransform rt = go.transform as RectTransform; if (rt) { rt.SetParent(rectTransform); rt.anchoredPosition3D = Vector3.zero; rt.localRotation = Quaternion.identity; rt.localScale = Vector3.one; } m_ImagesPool.Add(go.GetComponent <Image>()); } string spriteName = matches[i].Groups[1].Value; Image img = m_ImagesPool[i]; Vector2 imgoffset = Vector2.zero; if (img.sprite == null || img.sprite.name != spriteName) { if (inspectorIconList != null && inspectorIconList.Length > 0) { for (int s = 0; s < inspectorIconList.Length; s++) { if (inspectorIconList[s].name == spriteName) { img.sprite = inspectorIconList[s].sprite; img.preserveAspect = true; img.rectTransform.sizeDelta = new Vector2(fontSize * ImageScalingFactor * inspectorIconList[s].scale.x, fontSize * ImageScalingFactor * inspectorIconList[s].scale.y); imgoffset = inspectorIconList[s].offset; break; } } } } img.enabled = true; if (positions.Count > 0 && i < positions.Count) { img.rectTransform.anchoredPosition = positions[i] += imgoffset; } } } else { // If there are no matches, remove the images from the pool for (int i = m_ImagesPool.Count - 1; i > 0; i--) { if (m_ImagesPool[i]) { if (!culled_ImagesPool.Contains(m_ImagesPool[i].gameObject)) { culled_ImagesPool.Add(m_ImagesPool[i].gameObject); m_ImagesPool.Remove(m_ImagesPool[i]); } } } } // Remove any images that are not being used for (int i = m_ImagesPool.Count - 1; i >= matches.Count; i--) { if (i >= 0 && m_ImagesPool.Count > 0) { if (m_ImagesPool[i]) { if (!culled_ImagesPool.Contains(m_ImagesPool[i].gameObject)) { culled_ImagesPool.Add(m_ImagesPool[i].gameObject); m_ImagesPool.Remove(m_ImagesPool[i]); } } } } // Clear the images when it is safe to do so if (culled_ImagesPool.Count > 0) { clearImages = true; } }
public static GameObject CreateScrollView(DefaultControls.Resources resources) { GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Scroll View", new Vector2(200f, 200f)); GameObject uiObject1 = DefaultControls.CreateUIObject("Viewport", uiElementRoot); GameObject uiObject2 = DefaultControls.CreateUIObject("Content", uiObject1); GameObject scrollbar1 = DefaultControls.CreateScrollbar(resources); scrollbar1.name = "Scrollbar Horizontal"; DefaultControls.SetParentAndAlign(scrollbar1, uiElementRoot); RectTransform component1 = scrollbar1.GetComponent<RectTransform>(); component1.anchorMin = Vector2.zero; component1.anchorMax = Vector2.right; component1.pivot = Vector2.zero; component1.sizeDelta = new Vector2(0.0f, component1.sizeDelta.y); GameObject scrollbar2 = DefaultControls.CreateScrollbar(resources); scrollbar2.name = "Scrollbar Vertical"; DefaultControls.SetParentAndAlign(scrollbar2, uiElementRoot); scrollbar2.GetComponent<Scrollbar>().SetDirection(Scrollbar.Direction.BottomToTop, true); RectTransform component2 = scrollbar2.GetComponent<RectTransform>(); component2.anchorMin = Vector2.right; component2.anchorMax = Vector2.one; component2.pivot = Vector2.one; component2.sizeDelta = new Vector2(component2.sizeDelta.x, 0.0f); RectTransform component3 = uiObject1.GetComponent<RectTransform>(); component3.anchorMin = Vector2.zero; component3.anchorMax = Vector2.one; component3.sizeDelta = Vector2.zero; component3.pivot = Vector2.up; RectTransform component4 = uiObject2.GetComponent<RectTransform>(); component4.anchorMin = Vector2.up; component4.anchorMax = Vector2.one; component4.sizeDelta = new Vector2(0.0f, 300f); component4.pivot = Vector2.up; ScrollRect scrollRect = uiElementRoot.AddComponent<ScrollRect>(); scrollRect.content = component4; scrollRect.viewport = component3; scrollRect.horizontalScrollbar = scrollbar1.GetComponent<Scrollbar>(); scrollRect.verticalScrollbar = scrollbar2.GetComponent<Scrollbar>(); scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.horizontalScrollbarSpacing = -3f; scrollRect.verticalScrollbarSpacing = -3f; Image image1 = uiElementRoot.AddComponent<Image>(); image1.sprite = resources.background; image1.type = Image.Type.Sliced; image1.color = DefaultControls.s_PanelColor; uiObject1.AddComponent<Mask>().showMaskGraphic = false; Image image2 = uiObject1.AddComponent<Image>(); image2.sprite = resources.mask; image2.type = Image.Type.Sliced; return uiElementRoot; }