내일배움캠프

내일배움캠프: Tag를 상수 처럼 사용해보자

pracumj 2024. 12. 24. 23:00

유니티에서 Tag를 사용할 때는 문자열 형식으로 직접 값을 입력해야 하는데, 이 과정에서 오타가 발생하거나 tag 이름이 너무 길면 작성하는 데 번거로움을 느끼기 쉽다. 이러한 불편함을 줄이기 위해, 유니티 에디터를 커스터마이징하여 tag를 문자열 상수로 자동 생성해주는 유틸리티 클래스를 만들어보았다.

 

코드 

public class TagEnumCreator: Editor
{
    [MenuItem("Tools/Generate Tag Enum")]
    public static void GenerateTagEnum()
    {

        string[] tags = UnityEditorInternal.InternalEditorUtility.tags;
        
        if (Directory.Exists("Assets/Scripts/AutoCreated/Enum/") == false)
        {
            Directory.CreateDirectory("Assets/Scripts/AutoCreated/Enum/");
        }

        StreamWriter sw = new StreamWriter("Assets/Scripts/AutoCreated/Enum/Tags.cs");
        sw.WriteLine("//This enum is auto create by TagEnumCreator.cs ");
        sw.WriteLine();
        sw.WriteLine("public static class Tags");
        sw.WriteLine('{');
        foreach (var tag in tags)
        {
            sw.WriteLine($"\t public const string T_{tag} = \"{tag}\";");
        }
        sw.WriteLine("}");
        sw.Close();
        UnityEngine.Debug.Log("Successfully created TagsEnum enum file.");
    }
    
}

 

 

 

 

단점! 메모리 사용량이 아주 아주 아주 조금이지만 분명히 존재하기는 한다.