Unity/Tips

간혹 열거형(enum)을 여러 개 지정할 때

최애뎡 2021. 7. 16. 17:44
728x90
반응형

https://docs.microsoft.com/ko-kr/dotnet/api/system.flagsattribute?view=net-5.0 

 

FlagsAttribute 클래스 (System)

열거형을 비트 필드 즉, 플래그 집합으로 처리할 수 있음을 나타냅니다.Indicates that an enumeration can be treated as a bit field; that is, a set of flags.

docs.microsoft.com

using UnityEngine;

public class EnumTest : MonoBehaviour
{
    [System.Flags] // [System.Flags] -> 열거형 -> 비트 연산
    public enum Player
    {
        None,
        Player_0 = 0x00000001, // 0000 0000 0000 0000 0000 0000 0000 0001
        Player_1 = 0x00000002, // ~ 0010
        Player_2 = 0x00000004, // ~ 0100
        Player_3 = 0x0000000A  // ~ 1010  
    }

    private void Start()
    {
        // 여러 상태 동시에 -> 나중에 뭐 뛰는데 공격을 하면서 뛴다든지
        Player player = Player.Player_3 | Player.Player_2;
        Debug.Log(player);

        // 나중에 뭐.. 조건문으로 상태를 비교 할 수도 있는
        Player player_ = Player.Player_3 & Player.Player_2;
        Debug.Log(player_);

        Player player_0 = Player.Player_3 & Player.Player_3;
        Debug.Log(player_0);
    }
}

반응형