C# Attribute 2

[C#] Flags Attribute를 활용하자!

다른 사람의 코드를 보다가 선언된 enum 앞에 [Flags] 또는 [System.Flags] attribute가 붙은 걸 보고 '이게 뭐지? 무슨 역할을 하지?' 하고 궁금해한 적이 있다. 궁금해만 하다가 이제서야 Flags attribute의 유용성을 알게 되었다. 특히 선언된 enum을 bitwise operation에 이용할 때 많이 유용하다. 예제로 flags를 착용 상태를 표현하도록 해본다. UseOfFlags라는 컴포넌트를 하나 만들어서, EquipStatus 변수를 public으로 선언하고 인스펙터에서 보면, 흔히 layer 를 선택할 수 있는 것처럼 다중 선택을 할 수 있다. Flags attribute의 유용함의 꽃은 log를 찍을 때 나타난다. 숫자 1~4 까지 bitwise "|" ..

Unity & C# 2022.08.15

[c#] Obsolete 활용하기

Attribute 중 Obsolete 라는 친구가 있다. 영단어 해석을 하면 "더 이상 쓸모 없는" 이라는 뜻인데, 해석의 뜻과 같이 더 이상 필요없는 class나 변수, 함수에 쓸 수 있다. 사용 방법은 간단하다. 더 이상 쓰지 않는 class, 변수, 함수 앞에 [Obsolete("string")] 형식으로 작성을 하면 된다. 유니티에서는 Monobehaviour를 상속받는 클래스, 즉 컴포넌트로 쓰일 클래스 앞에 Obsolete를 쓰면, 다음과 같은 모습이 인스펙터에서 보인다. 여기서 "Not Supported Anymore" 라는 메세지는 Obsolete Attribute의 파라미터로 넘긴 string 값이다. 코드를 살펴보면 다음과 같다. (빨간색 화살표) 그리고 함수 앞에 Obsolete를 추..

Unity & C# 2022.07.14