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
게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.
<유니티 교과서 개정6판>(유니티 최신 버전) 구입 링크
https://link.coupang.com/a/be3P0t
<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e> 구입 링크
https://link.coupang.com/a/8VWas
<이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것> 구입 링크
https://link.coupang.com/a/9BqLd
유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h
(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)
728x90
반응형
'유니티 엔진 (Unity Engine)' 카테고리의 다른 글
[Unity] Editor SceneView 에서 카메라 조작하기 (fov, position, rotation) (0) | 2023.12.07 |
---|---|
[Unity] Addressable.LoadAssetAsync() 동기/비동기 처리 (0) | 2023.12.04 |
[Unity] C# Finalizer 와 Garbage Collector 동작에 대한 정리 (0) | 2023.12.01 |
[Unity] ScriptableObject의 CustomEditor가 있을 때 저장이 안 되는 문제 (0) | 2023.11.22 |
[Unity] 드로우 콜 최적화 (Optimize DrawCall) 요약 정리 (0) | 2023.11.16 |
[Unity] Unity Engine 버전업 후 에러 메시지 Error : "The type or namespace name 'Newtonsoft' could not be found" (0) | 2023.11.16 |
[Unity] 비동기 처리를 위한 UniTask (0) | 2023.11.15 |