유니티 엔진 (Unity Engine)

[Unity] Flags Attribute

원생계 2023. 11. 30. 16:24

enum 타입 앞에 [Flags] 어트리뷰트를 붙이면 Inspector 에서 여러 개를 선택 가능한 Bit Flags 처럼 사용할 수 있는데, 이 때 유의해야할 점.

None = 0 을 앞이 두어서 아무것도 선택되지 않은 타입을 두는 게 좋다.

각 Enum 값들은 1, 2, 4, 8, ... 처럼 2진수 bit flag 한 자리씩 값을 갖는 숫자로 지정해줘야 한다. (자연수로만 구성하면 하나를 선택했을 때 다른 값도 같이 활성화되는 오동작을 할 수도 있음.)

 

아래는 샘플 코드.

[Flags]
public enum ETest
{
    None = 0,
    Option1 = 1 << 0,
    Option2 = 1 << 1,
    Option3 = 1 << 2,
    Option4 = 1 << 3,
    Option5 = 1 << 4
}
public ETest testEnum;

 

Flags Attribute 공식 도큐먼트

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

 

FlagsAttribute Class (System)

Indicates that an enumeration can be treated as a bit field; that is, a set of flags.

learn.microsoft.com

 


게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.

 

<유니티 교과서 개정6판>(유니티 최신 버전) 구입 링크
https://link.coupang.com/a/be3P0t

 

유니티 교과서 개정6판

COUPANG

www.coupang.com


<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e> 구입 링크
https://link.coupang.com/a/8VWas

 

리얼-타임 렌더링 4/e

COUPANG

www.coupang.com

 

<이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것> 구입 링크
https://link.coupang.com/a/9BqLd

 

이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것

COUPANG

www.coupang.com

 

유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)


 

728x90
반응형