Unity 분석

Enum의 활용

지영7130 2023. 1. 7. 02:55

 내가 Enum을 처음 배웠을 때 든 생각은 "저걸 어따쓰지" 이였다. 상수에 이름을 붙여서 어떠한 이득을 주는지 알지 못했고 그것이 필요한 상황을 만나지 못했기 때문이다. 하지만 프로젝트를 같이하던 한 프로그래머 분이 이것을 활용하는 것을 보았고 그때부터 Enum의 활용과 필요성에 대해 느끼게 되었다.

 

enum Item
{
    axe, //0
    meat, //1
    rope = 5 //5
    stone = 10 //10
}

 

 enum은 쉽게 말하면 상수에 이름을 붙이는 것이다. 위처럼 Item을 선언하면 Item.axe는 0, Item.meat는 1이 된다. 이러한 Enum을 이용하면 아이템처럼 특정 이름에 인덱스를 필요로 하는 경우에 활용될 수 있다. 

 

enum Item
{
    axe, //0
    meat, //1
    rope = 5 //5
    stone = 10 //10
}

private void Get_Item_Name(Item itemCode)
{
    switch(itemCode)
    {
    	case Item.axe:
        	Debug.Log("Axe");
            break;
    	case Item.meat:
        	Debug.Log("Meat");
            break;
    	case Item.rope:
        	Debug.Log("Rope");
            break;
    	case Item.stone:
        	Debug.Log("Stone");
            break;
    }
}

 

 이렇게 switch와 함깨쓰면 더욱 편리하게 활용할 수 있다. 위 함수에서는 단순히 Debug.Log로 아이템의 이름을 출력했다. 하지만 실제 게임에서 이를 활용한다면 이보다 더 복잡하고 많은 작업들을 처리할 수 있다. 만약 Enum을 사용하지 않았었다면 직접 Get_Item_Name 함수에 아이템 인덱스를 넣어서 주거나 문자열로 작성해야 할것이다. 하지만 문자열로 작성할 경우 오탈자가 발생하기가 쉬워진다. 하지만 enum을 사용하면 아래 사진과 같이 자동완성으로 enum에 선언해 두었던 것들을 알려준다.

 

 

 위 사진은 내 프로젝트에서 플레이어 애니메이션을 전환할 때 사용하는 함수를 다른곳에서 호출할 때 사진이다. 나는 이렇게 특정 애니메이션으로 전환할 때 enum과 switch를 활용하고 있다.

'Unity 분석' 카테고리의 다른 글

MonoBehaviour  (0) 2023.01.08
코루틴의 작동방식  (0) 2023.01.06
메모리 구조와 유니티 - GC에 대한 심층적 이해  (0) 2023.01.05
GameObject.Find()  (0) 2023.01.04
물체가 이동하면서 얇은 벽을 통과하는 경우  (0) 2023.01.04