Unity 뿐만 아니라 다른 모든 프로그래밍에서 함수나 클래스를 만들었다가 버리는 경우가 흔하다.
보통 주석처리 하거나 아예 지워버리긴 하지만, 다른 사람들과 협업할 때 무작정 없애면 혼란이 생길 수가 있다.
또한 이전 버전을 사용하는 사람에게 새로운 함수나 클래스로 변경하라는 메세지가 필요할 때도 있다.
이를 위해 Unity에서는 더 이상 사용하지 않는 함수나 클래스에 Obsolete 키워드를 넣어 해당 함수나 클래스가 더 이상 권장되지 않음을 표시할 수 있다.
0. System.Obsolete
Obsolete 키워드는 선언 바로 윗 부분에 [System.Obsolete]를 적어 적용할 수 있다.
형태는 총 3가지가 존재한다.
[System.Obsolete]: 기본 형태. 해당 메서드나 클래스가 권장되지 않음을 표시.
[System.Obsolete(string message)]: 기본 형태에 더해 추가 설명을 적을 수 있음.
[System.Obsolete(string message, bool error)]: 추가 설명에 더해 해당 메서드나 클래스 사용 시 컴파일 에러 여부를 정함.
1. 함수 Obsolete

ShitFunc를 만들고 Obsolete 키워드를 넣으면 다른 클래스에서 접근할 때 표시가 된다.

vscode 기준으로는 저렇게 취소선 표시가 뜨며,

함수 설명에 적어놨던 message가 나온다.

함수에 error = true로 설정하면 아래와 같이 해당 함수 사용 시 컴파일 에러를 띄운다.

2. 클래스 Obsolete
클래스도 선언 바로 윗 부분에 Obsolete를 넣어 동일하게 적용 가능하다.





추가로 클래스는 인스펙터에서 Obsolete message로 적은 내용을 확인 가능하다. error를 적을 때와 안 적을 때가 다르게 표시된다.


3. 변수 Obsolete
변수에도 Obsolete를 넣을 수 있다. 마찬가지로 선언 바로 윗 부분에 키워드를 적어주면 된다.




그리고 클래스와는 다르게 인스펙터 창에서 메세지가 표시되지 않는다.

결론
Obsolete를 쓰면 멋지게 표현 가능하다. 이전 사용자에게 권장 사항을 알려 줄 수 있으므로 안쓰게 될 함수나 클래스에 종종 사용하자.
'게임개발 > Unity' 카테고리의 다른 글
| [Unity] Debug.Log 커스터마이징 (0) | 2025.07.12 |
|---|---|
| [Unity] NetworkVariable, INetworkSerializable Synchronization Problem (0) | 2025.06.05 |
| [Unity] StopCoroutine, 코루틴 중지시키기 (3) | 2025.06.03 |
| [Unity] Button OnClick Event is triggered twice (0) | 2024.08.26 |
| [Unity] 마우스 커서 숨기기, 마우스 화면 고정(cursor visible, cursor lock) (1) | 2023.12.17 |