[UGUI]_8. Dropdown

유니티 UI

목록 보기
8/9

Dropdown

메뉴를 클릭하면 선택할 수 있는 메뉴를 펼쳐서 보여주는 UI입니다.

게임 오브젝트

컴포넌트

OnvalueChanged()를 이용한 Dropdown UI의 value값 활용

Dropdown UI의 value 값을 조작해 쓸 때 호출되는 메소드 작성을 위해
Dropdown 스크립트를 생성 및 작성합니다.

public class Dropdown_UI : MonoBehaviour
{
    [SerializeField]
    private TextMeshProUGUI text;

    public void OnDropdownEvent(int index)		//int형 매개변수 선언
    {
        text.text = $"Dropdown Value : {index}";
    }
}

Dropdown UI에서 선택되는 메뉴가 바뀌면 그에 따라 숫자가 바뀌는 것을 확인할 수 있습니다.

스크립트를 이용한 OnvalueChanged() 이벤트 등록

using UnityEngine.UI;

public class Dropdown_UI : MonoBehaviour
{
    [SerializeField]
    private TextMeshProUGUI text;

    [SerializeField]
    private TMP_Dropdown dropdown;		//타입은 "TMP_Dropdown"입니다 주의하세요

    private void Awake()
    {
        dropdown.onValueChanged.AddListener(OnDropdownEvent);
    }

    public void OnDropdownEvent(int index)
    {
        text.text = $"Dropdown Value : {index}";
    }
}

Dropdown의 onValueChanged.AddListener()에 등록하는 메소드는 int 매개변수 1개를 가지고 있어야 합니다.

스크립트를 이용해 Options 데이터 설정

Dropdown의 Options는 스크립트를 이용해 설정할 수도 있습니다.

using UnityEngine.UI;

public class Dropdown_UI : MonoBehaviour
{
	//Dropdown 제어를 위한 TMP_Dropdown타입 변수와 
	//Dropdown의 옵션 데이터로 활용되는 문자열 배열 변수 arrayClass를 선언합니다.
    
    [SerializeField]
    private TMP_Dropdown dropdown;
    private string[] arrayClass = new string[5] { "Warrior", "Mage", "SwordMan", "Archer", "Necromancer" };

    private void Awake()
    {
        // 현재 dropdown에 있는 모든 옵션을 제거
        dropdown.ClearOptions();

        // 새로운 옵션 설정을 위한 OptionData 생성
        List<TMP_Dropdown.OptionData> optionList = new List<TMP_Dropdown.OptionData>();

        // arrayClass 배열에 있는 모든 문자열 데이터를 불러와서 optionList에 저장
        foreach (string str in arrayClass)
        {
            optionList.Add(new TMP_Dropdown.OptionData(str));
        }

        // 위에서 생성한 optionList를 dropdown의 옵션 값에 추가
        dropdown.AddOptions(optionList);

        // 현재 dropdown에 선택된 옵션을 0번으로 설정
        dropdown.value = 0;
    }
}

1개의 댓글

comment-user-thumbnail
2023년 12월 11일

좋은 글들이 정말 많네요. Dropdown이라는 것도 있었네요 감사합니다.

답글 달기