Skip to content

Instantly share code, notes, and snippets.

@quartorz
Last active November 30, 2021 05:46
Show Gist options
  • Save quartorz/13300b6c3e99317b75a2231604e78ec5 to your computer and use it in GitHub Desktop.
Save quartorz/13300b6c3e99317b75a2231604e78ec5 to your computer and use it in GitHub Desktop.
#if IS_DEBUG
using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/// <summary>
/// uGUIを使ってウィンドウを表示するやつ
/// </summary>
public class DebugWindow : MonoBehaviour, IDisposable, IBeginDragHandler, IDragHandler
{
Canvas _canvas;
Sprite _whiteSprite;
Font _font;
RectTransform _rectTransform;
Text _title;
RectTransform _container;
Vector2 _dragStartPosition;
ScrollRect _scrollRect;
VerticalLayoutGroup _scrollRectLayoutGroup;
LayoutElement _scrollRectLayoutElement;
RectTransform _viewportTransform;
Mask _viewportMask;
Image _viewportImage;
VerticalLayoutGroup _viewportLayoutGroup;
ContentSizeFitter _scrollRectSizeFitter;
ContentSizeFitter _viewportSizeFitter;
float? _fixedHeight;
public string title { get => _title.text; set => gameObject.name = _title.text = value; }
public float width { get => _rectTransform.sizeDelta.x; set => _rectTransform.sizeDelta = new Vector2(value, 0); }
public Action onDestroy;
/// <summary>
/// <c>null</c>なら自動で調整して、<c>null</c>じゃない場合は指定した高さに固定する
/// </summary>
public float? fixedHeight {
get => _fixedHeight;
set {
if ((_fixedHeight = value) is float v) {
_scrollRect.enabled = true;
_scrollRectLayoutGroup.enabled = false;
_scrollRectSizeFitter.enabled = false;
_scrollRectLayoutElement.enabled = true;
_viewportMask.enabled = true;
_viewportImage.enabled = true;
_viewportLayoutGroup.enabled = false;
_viewportSizeFitter.enabled = false;
_viewportTransform.anchorMin = Vector2.zero;
_viewportTransform.anchorMax = Vector2.one;
_viewportTransform.offsetMin = _viewportTransform.offsetMax = Vector2.zero;
_scrollRectLayoutElement.minHeight = v;
}
else {
_scrollRect.enabled = false;
_scrollRectLayoutGroup.enabled = true;
_scrollRectSizeFitter.enabled = true;
_scrollRectLayoutElement.enabled = false;
_viewportMask.enabled = false;
_viewportImage.enabled = false;
_viewportLayoutGroup.enabled = true;
_viewportSizeFitter.enabled = true;
}
}
}
public static DebugWindow Create(Canvas canvas, Sprite white, Font font, string title = null)
{
var gameObject = new GameObject(title ?? "DebugWindow");
var c = gameObject.AddComponent<DebugWindow>();
c.Setup(canvas, white, font);
return c;
}
void Setup(Canvas canvas, Sprite white, Font font)
{
_canvas = canvas;
_whiteSprite = white;
_font = font;
_rectTransform = gameObject.AddComponent<RectTransform>();
_rectTransform.SetParent(canvas.transform, false);
_rectTransform.pivot = _rectTransform.anchorMin = _rectTransform.anchorMax = Vector2.up;
_rectTransform.anchoredPosition = Vector2.zero;
// 高さは子の高さに勝手に合う
_rectTransform.sizeDelta = new Vector2(300, 0);
var background = gameObject.AddComponent<Image>();
background.raycastTarget = true;
background.sprite = _whiteSprite;
background.color = new Color(1, 1, 1, 0.27f);
var verticalLayout = gameObject.AddComponent<VerticalLayoutGroup>();
verticalLayout.padding = new RectOffset(2, 2, 2, 2);
verticalLayout.spacing = 2;
verticalLayout.childControlWidth = true;
verticalLayout.childControlHeight = true;
verticalLayout.childScaleWidth = verticalLayout.childScaleHeight = false;
verticalLayout.childForceExpandWidth = true;
verticalLayout.childForceExpandHeight = false;
var headerGameObject = new GameObject("Header");
headerGameObject.transform.SetParent(verticalLayout.transform, false);
var header = headerGameObject.AddComponent<HorizontalLayoutGroup>();
// 幅は親に勝手に合う
header.GetRectTransform().sizeDelta = new Vector2(0, 36);
header.padding = new RectOffset(2, 2, 2, 2);
header.spacing = 2;
header.childControlWidth = header.childControlHeight = true;
header.childScaleWidth = header.childScaleHeight = false;
header.childForceExpandWidth = false;
header.childForceExpandHeight = true;
var headerImage = headerGameObject.AddComponent<Image>();
headerImage.sprite = _whiteSprite;
headerImage.color = new Color(0, 0, 0, 0.5f);
headerGameObject.AddComponent<LayoutElement>().minHeight = 36;
_title = CreateText("Title", gameObject.name);
_title.gameObject.AddComponent<LayoutElement>().flexibleWidth = 1;
_title.transform.SetParent(header.transform, false);
var collapseButton = CreateButton("CollapseButton", "_");
var collapseButtonLayoutElement = collapseButton.gameObject.AddComponent<LayoutElement>();
collapseButtonLayoutElement.preferredWidth = collapseButtonLayoutElement.minWidth = 32;
collapseButtonLayoutElement.flexibleWidth = 0;
collapseButton.GetRectTransform().sizeDelta = new Vector2(32, 32);
collapseButton.transform.SetParent(header.transform, false);
var closeButton = Instantiate(collapseButton, header.transform);
closeButton.gameObject.name = "CloseButton";
closeButton.transform.GetChild(0).GetComponent<Text>().text = "×";
var sizeFitter = gameObject.AddComponent<ContentSizeFitter>();
sizeFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
sizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize;
var scrollRect = new GameObject("ScrollRect");
var scrollRectTransform = scrollRect.AddComponent<RectTransform>();
scrollRectTransform.SetParent(_rectTransform);
_scrollRect = scrollRect.AddComponent<ScrollRect>();
_scrollRect.horizontal = false;
_scrollRectLayoutGroup = scrollRect.AddComponent<VerticalLayoutGroup>();
_scrollRectSizeFitter = scrollRect.AddComponent<ContentSizeFitter>();
_scrollRectSizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize;
_scrollRectLayoutElement = scrollRect.AddComponent<LayoutElement>();
var viewport = new GameObject("Viewport");
_viewportTransform = viewport.AddComponent<RectTransform>();
_viewportTransform.SetParent(scrollRectTransform);
_viewportLayoutGroup = viewport.AddComponent<VerticalLayoutGroup>();
_viewportLayoutGroup.childControlHeight = false;
_viewportSizeFitter = viewport.AddComponent<ContentSizeFitter>();
_viewportSizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize;
_viewportMask = viewport.AddComponent<Mask>();
_viewportMask.showMaskGraphic = false;
_viewportImage = viewport.AddComponent<Image>();
_viewportImage.sprite = _whiteSprite;
var container = new GameObject("Container");
_container = container.AddComponent<RectTransform>();
_container.SetParent(_viewportTransform, false);
_container.pivot = Vector2.one;
var containerVerticalLayout = container.AddComponent<VerticalLayoutGroup>();
containerVerticalLayout.padding = new RectOffset(2, 2, 2, 2);
containerVerticalLayout.spacing = 0;
containerVerticalLayout.childControlWidth = true;
containerVerticalLayout.childControlHeight = false;
containerVerticalLayout.childScaleWidth = containerVerticalLayout.childScaleHeight = false;
containerVerticalLayout.childForceExpandWidth = true;
containerVerticalLayout.childForceExpandHeight = false;
var containerSizeFitter = container.AddComponent<ContentSizeFitter>();
containerSizeFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
containerSizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize;
var containerImage = container.AddComponent<Image>();
containerImage.sprite = _whiteSprite;
containerImage.color = new Color(0, 0, 0, 0.5f);
_scrollRect.content = _container;
_scrollRect.viewport = _viewportTransform;
collapseButton.onClick.AddListener(() => scrollRect.SetActive(!scrollRect.activeSelf));
closeButton.onClick.AddListener(Destroy);
fixedHeight = null;
}
public void Dispose()
{
_canvas = null;
_whiteSprite = null;
_font = null;
_rectTransform = null;
_title = null;
_container = null;
_scrollRect = null;
_scrollRectLayoutGroup = null;
_scrollRectSizeFitter = null;
_scrollRectLayoutElement = null;
_viewportTransform = null;
_viewportMask = null;
_viewportImage = null;
_viewportLayoutGroup = null;
_viewportSizeFitter = null;
}
public void OnBeginDrag(PointerEventData eventData)
{
_dragStartPosition = _rectTransform.anchoredPosition;
}
public void OnDrag(PointerEventData eventData)
{
_rectTransform.anchoredPosition = _dragStartPosition + (eventData.position - eventData.pressPosition) / _canvas.scaleFactor;
}
public void Destroy()
{
Destroy(gameObject);
}
void OnDestroy()
{
onDestroy?.Invoke();
Dispose();
}
public void Clear()
{
foreach (Transform element in _container) {
Destroy(element.gameObject);
}
Canvas.ForceUpdateCanvases();
}
public void Remove(GameObject element)
{
Destroy(element);
Canvas.ForceUpdateCanvases();
}
public void AddSpacer(float height)
{
var gameObject = new GameObject("Spacer");
gameObject.GetRectTransform().sizeDelta = new Vector2(0, height);
gameObject.transform.SetParent(_container, false);
}
public Button AddButton(string text, Action onClick = null)
{
var button = CreateButton("Button", text);
button.transform.SetParent(_container, false);
if (onClick != null) {
button.onClick.AddListener(() => onClick());
}
Canvas.ForceUpdateCanvases();
return button;
}
public Text AddText(string value)
{
var text = CreateText("Text", value);
var rectTransform = text.rectTransform;
rectTransform.SetParent(_container, false);
rectTransform.sizeDelta = new Vector2(0, 32);
Canvas.ForceUpdateCanvases();
return text;
}
public Slider AddSlider(int min, int max, Action<int> onChange = null)
{
var slider = CreateSlider();
slider.wholeNumbers = true;
slider.minValue = min;
slider.maxValue = max;
slider.transform.SetParent(_container, false);
if (onChange != null) {
slider.onValueChanged.AddListener(v => onChange((int)v));
}
Canvas.ForceUpdateCanvases();
return slider;
}
public Slider AddSlider(float min, float max, Action<float> onChange = null)
{
var slider = CreateSlider();
slider.minValue = min;
slider.maxValue = max;
slider.transform.SetParent(_container, false);
if (onChange != null) {
slider.onValueChanged.AddListener(v => onChange(v));
}
Canvas.ForceUpdateCanvases();
return slider;
}
public Toggle AddToggle(string label, Action<bool> onChange = null)
{
var toggle = CreateToggle(label);
toggle.transform.SetParent(_container, false);
if (onChange != null) {
toggle.onValueChanged.AddListener(v => onChange(v));
}
Canvas.ForceUpdateCanvases();
return toggle;
}
public InputField AddInputField(string value = null, string placeholder = null, Action<string> onEndEdit = null)
{
var inputField = CreateInputField(placeholder);
inputField.transform.SetParent(_container, false);
if (!string.IsNullOrEmpty(value)) {
inputField.text = value;
}
if (onEndEdit != null) {
inputField.onEndEdit.AddListener(v => onEndEdit(v));
}
Canvas.ForceUpdateCanvases();
return inputField;
}
public Dropdown AddDropdown(Action<string> onChange = null)
{
var dropdown = CreateDropdown();
dropdown.transform.SetParent(_container, false);
if (onChange != null) {
dropdown.onValueChanged.AddListener(i => {
onChange(dropdown.options[i].text);
});
}
Canvas.ForceUpdateCanvases();
return dropdown;
}
Text CreateText(string name, string value)
{
var textGameObject = new GameObject(name);
var text = textGameObject.AddComponent<Text>();
text.text = value;
text.font = _font;
text.fontSize = 24;
text.lineSpacing = 0.5f;
text.alignment = TextAnchor.MiddleLeft;
text.color = Color.white;
text.resizeTextMaxSize = 24;
text.resizeTextForBestFit = true;
textGameObject.AddComponent<LayoutElement>();
return text;
}
Button CreateButton(string name, string label)
{
var buttonGameObject = new GameObject(name);
var image = buttonGameObject.AddComponent<Image>();
image.sprite = _whiteSprite;
var button = buttonGameObject.AddComponent<Button>();
buttonGameObject.GetRectTransform().sizeDelta = new Vector2(0, 32);
var text = CreateText("Text", label);
text.color = Color.black;
text.alignment = TextAnchor.MiddleCenter;
var textTransform = text.rectTransform;
textTransform.SetParent(buttonGameObject.transform, false);
textTransform.offsetMin = textTransform.offsetMax = Vector2.zero;
textTransform.pivot = textTransform.anchorMin = Vector2.zero;
textTransform.anchorMax = Vector2.one;
buttonGameObject.AddComponent<LayoutElement>();
return button;
}
Slider CreateSlider()
{
var sliderRoot = new GameObject("Slider");
var slider = sliderRoot.AddComponent<Slider>();
var sliderTransform = sliderRoot.GetRectTransform();
sliderRoot.AddComponent<LayoutElement>();
sliderTransform.sizeDelta = new Vector2(0, 20);
var background = new GameObject("Background");
var backgroundTransform = background.GetRectTransform();
backgroundTransform.anchorMin = new Vector2(0, 0.25f);
backgroundTransform.anchorMax = new Vector2(1, 0.75f);
background.transform.SetParent(sliderTransform, false);
var backgroundImage = background.AddComponent<Image>();
backgroundImage.sprite = _whiteSprite;
backgroundImage.type = Image.Type.Sliced;
backgroundTransform.offsetMin = backgroundTransform.offsetMax = Vector2.zero;
var fillArea = new GameObject("FillArea");
var fillAreaTransform = fillArea.GetRectTransform();
fillAreaTransform.SetParent(sliderTransform, false);
fillAreaTransform.anchorMin = new Vector2(0, 0.25f);
fillAreaTransform.anchorMax = new Vector2(1, 0.75f);
fillAreaTransform.offsetMin = new Vector2(5, 0);
fillAreaTransform.offsetMax = new Vector2(-15, 0);
var fill = new GameObject("Fill");
var fillTransform = fill.GetRectTransform();
fillTransform.SetParent(fillAreaTransform, false);
fillTransform.offsetMin = new Vector2(-5, 0);
fillTransform.offsetMax = new Vector2(15, 0);
var fillImage = fill.AddComponent<Image>();
fillImage.sprite = _whiteSprite;
fillImage.type = Image.Type.Sliced;
var slideArea = new GameObject("Handle Slide Area");
var slideAreaTransform = slideArea.GetRectTransform();
slideAreaTransform.SetParent(sliderTransform, false);
slideAreaTransform.anchorMin = Vector2.zero;
slideAreaTransform.anchorMax = Vector2.one;
slideAreaTransform.offsetMin = new Vector2(10, 0);
slideAreaTransform.offsetMax = new Vector2(-10, 0);
var handle = new GameObject("Handle");
var handleTransform = handle.GetRectTransform();
handleTransform.SetParent(slideAreaTransform, false);
handleTransform.offsetMin = handleTransform.offsetMax = Vector2.zero;
handleTransform.sizeDelta = new Vector2(20, 0);
var handleImage = handle.AddComponent<Image>();
handleImage.sprite = _whiteSprite;
slider.targetGraphic = handleImage;
slider.fillRect = fillTransform;
slider.handleRect = handleTransform;
return slider;
}
Toggle CreateToggle(string label)
{
var toggleRoot = new GameObject("Toggle");
var toggle = toggleRoot.AddComponent<Toggle>();
var toggleTransform = toggle.GetRectTransform();
toggleTransform.sizeDelta = new Vector2(0, 32);
var background = new GameObject("Background");
var backgroundImage = background.AddComponent<Image>();
backgroundImage.sprite = _whiteSprite;
var backgroundTransform = backgroundImage.rectTransform;
backgroundTransform.SetParent(toggleTransform, false);
backgroundTransform.anchorMin = backgroundTransform.anchorMax = Vector2.up;
backgroundTransform.sizeDelta = new Vector2(24, 24);
backgroundTransform.anchoredPosition = new Vector2(12, -16);
var checkmark = CreateText("Checkmark", "✓");
checkmark.fontSize = 18;
checkmark.alignment = TextAnchor.MiddleCenter;
checkmark.color = Color.black;
checkmark.resizeTextForBestFit = false;
var checkmarkTransform = checkmark.rectTransform;
checkmarkTransform.SetParent(backgroundTransform, false);
checkmarkTransform.anchorMin = Vector2.zero;
checkmarkTransform.anchorMax = Vector2.one;
checkmarkTransform.offsetMin = Vector2.zero;
checkmarkTransform.offsetMax = Vector2.zero;
var text = CreateText("Text", label);
var textTransform = text.rectTransform;
textTransform.SetParent(toggleTransform, false);
textTransform.anchorMin = Vector2.zero;
textTransform.anchorMax = Vector2.one;
textTransform.offsetMin = new Vector2(25, 0);
textTransform.offsetMax = Vector2.zero;
toggle.targetGraphic = backgroundImage;
toggle.graphic = checkmark;
return toggle;
}
InputField CreateInputField(string placeholderText)
{
var root = new GameObject("InputField");
var rootImage = root.AddComponent<Image>();
rootImage.sprite = _whiteSprite;
rootImage.rectTransform.sizeDelta = new Vector2(0, 40);
var inputField = root.AddComponent<InputField>();
inputField.targetGraphic = rootImage;
var rootTransform = root.transform;
var placeholder = CreateText("Placeholder", "");
placeholder.fontSize = 24;
placeholder.color = Color.gray;
placeholder.text = placeholderText;
placeholder.horizontalOverflow = HorizontalWrapMode.Wrap;
var placeholderTransform = placeholder.rectTransform;
placeholderTransform.SetParent(rootTransform, false);
placeholderTransform.anchorMin = Vector2.zero;
placeholderTransform.anchorMax = Vector2.one;
placeholderTransform.offsetMin = new Vector2(5, 0);
placeholderTransform.offsetMax = new Vector2(-5, 0);
inputField.placeholder = placeholder;
var text = CreateText("Text", "");
text.fontSize = 24;
text.color = Color.black;
var textTransform = text.rectTransform;
textTransform.SetParent(rootTransform, false);
textTransform.anchorMin = Vector2.zero;
textTransform.anchorMax = Vector2.one;
textTransform.offsetMin = new Vector2(5, 0);
textTransform.offsetMax = new Vector2(-5, 0);
inputField.textComponent = text;
text.horizontalOverflow = HorizontalWrapMode.Wrap;
return inputField;
}
Dropdown CreateDropdown()
{
var templateGameObject = new GameObject("Template");
var template = templateGameObject.AddComponent<RectTransform>();
var scrollRect = templateGameObject.AddComponent<ScrollRect>();
templateGameObject.AddComponent<Canvas>();
templateGameObject.AddComponent<GraphicRaycaster>();
templateGameObject.AddComponent<CanvasGroup>();
template.anchorMin = Vector2.zero;
template.anchorMax = Vector2.right;
template.pivot = new Vector2(0.5f, 1);
template.Translate(0, -50, 0);
var viewport = new GameObject("Viewport");
var viewportTransform = viewport.AddComponent<RectTransform>();
var viewportImage = viewport.AddComponent<Image>();
viewportImage.sprite = _whiteSprite;
viewportImage.color = new Color(0.93f, 0.93f, 0.93f);
viewport.AddComponent<Mask>();
viewportTransform.anchorMin = Vector2.zero;
viewportTransform.anchorMax = Vector2.one;
viewportTransform.pivot = Vector2.up;
viewportTransform.offsetMax = new Vector2(0, 0);
viewportTransform.SetParent(template, false);
scrollRect.viewport = viewportTransform;
var content = new GameObject("Content");
var contentTransform = content.AddComponent<RectTransform>();
contentTransform.sizeDelta = new Vector2(0, 28);
contentTransform.anchorMin = Vector2.up;
contentTransform.anchorMax = Vector2.one;
contentTransform.pivot = new Vector2(0.5f, 1);
contentTransform.SetParent(viewportTransform, false);
scrollRect.content = contentTransform;
var itemGameObject = new GameObject("Item");
var itemTransform = itemGameObject.AddComponent<RectTransform>();
var itemToggle = itemGameObject.AddComponent<Toggle>();
itemTransform.sizeDelta = new Vector2(0, 35);
itemTransform.anchorMin = new Vector2(0, 0.5f);
itemTransform.anchorMax = new Vector2(1, 0.5f);
itemTransform.pivot = new Vector2(0.5f, 0.5f);
itemTransform.SetParent(contentTransform, false);
var itemToggleColors = itemToggle.colors;
itemToggleColors.normalColor = new Color(0.93f, 0.93f, 0.93f);
itemToggle.colors = itemToggleColors;
var itemBackgroundGameObject = new GameObject("ItemBackground");
var itemBackgroundTransform = itemBackgroundGameObject.AddComponent<RectTransform>();
var itemBackground = itemBackgroundGameObject.AddComponent<Image>();
itemBackgroundTransform.anchorMin = Vector2.zero;
itemBackgroundTransform.anchorMax = Vector2.one;
itemBackgroundTransform.offsetMin = Vector2.zero;
itemBackgroundTransform.offsetMax = Vector2.zero;
itemBackgroundTransform.SetParent(itemTransform, false);
itemBackground.sprite = _whiteSprite;
itemToggle.targetGraphic = itemBackground;
var itemCheckmark = new GameObject("ItemCheckmark");
var itemCheckmarkTransform = itemCheckmark.AddComponent<RectTransform>();
itemCheckmarkTransform.sizeDelta = new Vector2(25, 25);
itemCheckmarkTransform.anchorMin = new Vector2(0, 0.5f);
itemCheckmarkTransform.anchorMax = new Vector2(0, 0.5f);
itemCheckmarkTransform.pivot = new Vector2(0.5f, 0.5f);
itemCheckmarkTransform.anchoredPosition = new Vector2(15, 0);
itemCheckmarkTransform.SetParent(itemTransform, false);
var itemCheckmarkText = itemCheckmark.AddComponent<Text>();
itemCheckmarkText.alignment = TextAnchor.MiddleCenter;
itemCheckmarkText.font = _font;
itemCheckmarkText.fontSize = 24;
itemCheckmarkText.color = Color.black;
itemCheckmarkText.text = "✓";
itemToggle.graphic = itemCheckmarkText;
var itemLabel = new GameObject("ItemLabel");
var itemLabelTransform = itemLabel.AddComponent<RectTransform>();
itemLabelTransform.anchorMin = Vector2.zero;
itemLabelTransform.anchorMax = Vector2.one;
itemLabelTransform.pivot = new Vector2(0.5f, 0.5f);
itemLabelTransform.offsetMin = new Vector2(35, 2);
itemLabelTransform.offsetMax = new Vector2(-10, -1);
itemLabelTransform.SetParent(itemTransform, false);
var itemLabelText = itemLabel.AddComponent<Text>();
itemLabelText.alignment = TextAnchor.MiddleLeft;
itemLabelText.font = _font;
itemLabelText.fontSize = 24;
itemLabelText.color = Color.black;
var root = new GameObject("Dropdown");
var dropdown = root.AddComponent<Dropdown>();
var image = root.AddComponent<Image>();
image.sprite = _whiteSprite;
var text = CreateText("Text", "");
text.fontSize = 24;
text.color = Color.black;
text.alignment = TextAnchor.MiddleLeft;
var textTransform = text.rectTransform;
textTransform.anchorMin = Vector2.zero;
textTransform.anchorMax = Vector2.one;
textTransform.offsetMin = Vector2.zero;
textTransform.offsetMax = Vector2.zero;
textTransform.SetParent(dropdown.transform, false);
var arrow = CreateText("Arrow", "▾");
arrow.fontSize = 24;
arrow.color = Color.black;
arrow.alignment = TextAnchor.MiddleCenter;
var arrowTransform = arrow.rectTransform;
arrowTransform.anchorMin = new Vector2(1, 0.5f);
arrowTransform.anchorMax = new Vector2(1, 0.5f);
arrowTransform.pivot = new Vector2(1f, 0.5f);
arrowTransform.anchoredPosition = Vector2.zero;
arrowTransform.sizeDelta = new Vector2(24, 24);
arrowTransform.SetParent(dropdown.transform, false);
template.SetParent(dropdown.transform);
template.gameObject.SetActive(false);
dropdown.GetRectTransform().sizeDelta = new Vector2(0, 30);
dropdown.targetGraphic = image;
dropdown.itemText = itemLabelText;
dropdown.template = template;
dropdown.captionText = text;
return dropdown;
}
}
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment