본문 바로가기

Unity/유니티 설계

Enum(열거형)

프로젝트에서 커스텀 Enum 데이터 타입들을 효율적으로 관리하기 위해, 글로벌하게 사용할 공통 데이터 타입들을 모아놓은 클래스를 작성합니다. 이를 통해 유니티 개발 과정에서 다양한 열거형 타입들을 쉽게 정의하고 사용할 수 있습니다.

 

다양한 클래스에서 공통으로 사용할 수 있는 열거형 타입들을 한 곳에 모아둡니다. 이를 통해 클래스 타입과 네이밍이 겹칠 일이 없고, 자동완성의 이점도 누릴 수 있습니다. 타입들을 네임스페이스로 묶어두면 클래스 타입과 네이밍 충돌을 방지할 수 있고, 자동완성을 통해 빠르게 개발할 수 있습니다.  글로벌 공용 공간에 데이터 타입을 추가하다 보면, 특정 모듈에만 국한되어야 하는 데이터 타입이 추가될 수 있습니다. 이러한 타입들은 해당 모듈로 분리하여 관리해야 합니다. 이 방식은 프로젝트의 구조를 체계적으로 유지하고, 다양한 열거형 타입들을 효율적으로 관리할 수 있도록 도와줍니다.

또한, 열거형을 사용하면 컴파일 타임에 상태 값의 유효성을 검사할 수 있어 런타임 오류를 줄고, 상태가 추가되거나 변경될 때 한 곳에서 관리할 수 있어 유지보수가 용이합니다. 상태 값이 코드 전반에 분산되지 않고, 중앙에서 관리됩니다.

이러한 이점들이 많은 덕분에 Enum의 활용도를 높여 유니티 프로젝트 설계에 많은 도움을 줄 수 있습니다.

 

EnumTypes.cs

namespace EnumTypes
{
    public enum PlayerState
    {
        Idle = 0,
        Talk,
        Walk,
        Run,
        Attack,
        Die
    }

    public enum NpcState
    {
        Idle = 0,
        Talk
    }

    public enum MonsterState
    {
        Idle = 0,
        Walk,
        Chasing,
        Attack,
        Die
    }

    public enum ItemType
    {
        Armor = 0,
        Weapon,
        Consumption,
        Default,
    }

    public enum MouseButton
    {
        Left = 0,
        Right = 1
    }

    public enum LayerIndex
    {
        Player = 3,
        Obstruction = 6,
        Ground,
        Monster,
        Unwalkable
    }
    ...
}

전체 코드

https://github.com/HerFS/Unity-RPG/blob/main/Assets/_Scripts/Utilities/EnumTypes.cs

 

 

'Unity > 유니티 설계' 카테고리의 다른 글

솔리드 원칙(S.O.L.I.D Principle)  (0) 2024.07.09