2023년 12월 16일 토요일

Unity enum 을 string 획득하는 방법

서론

Unity에서 뭔가 nice하게 깔끔한 코드를 만들려는 압박이 있다보면, enum 형태를 생각하게 됩니다. 다른 언어에서 enum은 상수로만 사용이 가능한 부분도 있었는데 C#에서는 입력했던 String도 가져오는 방법이 준비가 되어있습니다.

본론

 Unity enum 은 C#에서 사용하는 열거형 형식을 가리키며, 이름이 지정된 상수 집합을 나타냅니다. 열거형은 enum 키워드를 사용하여 정의되며, 상수는 쉼표로 구분된 값의 목록으로 지정됩니다.

열거형의 모든 값들을 배열로 변환하기 위해 System.Enum.GetValues 메서드를 사용합니다. 이 메서드는 열거형의 모든 값들을 열거형의 기본 형식에 해당하는 배열로 반환합니다.

for 루프를 사용하여 배열의 각 요소에 접근합니다. 이때, 배열의 인덱스를 사용하거나 foreach 문을 사용할 수 있습니다.

각 요소를 string 으로 변환하기 위해 System.Enum.GetName 메서드를 사용합니다. 이 메서드는 열거형의 특정 값에 해당하는 이름을 반환합니다.

string 을 원하는 방식으로 사용하거나 저장합니다.

다음은 이 방법을 적용한 예제 코드입니다.


using UnityEngine;

public class EnumToString : MonoBehaviour
{
    public enum Colors
    {
        Red,
        Green,
        Blue
    }

    void Start()
    {
        var values = System.Enum.GetValues(typeof(Colors));

        for (int i = 0; i < values.Length; i++)
        {
            string name = System.Enum.GetName(typeof(Colors), values.GetValue(i));

            Debug.Log(name);
        }
    }
}


출력 결과

Red

Green

Blue


댓글 없음:

댓글 쓰기