[Unity] 안쓰는 함수 멋지게 표현하기 (System.Obsolete)

2025. 6. 12. 10:48·게임개발/Unity

Unity 뿐만 아니라 다른 모든 프로그래밍에서 함수나 클래스를 만들었다가 버리는 경우가 흔하다.

보통 주석처리 하거나 아예 지워버리긴 하지만, 다른 사람들과 협업할 때 무작정 없애면 혼란이 생길 수가 있다.

또한 이전 버전을 사용하는 사람에게 새로운 함수나 클래스로 변경하라는 메세지가 필요할 때도 있다.

 

이를 위해 Unity에서는 더 이상 사용하지 않는 함수나 클래스에 Obsolete 키워드를 넣어 해당 함수나 클래스가 더 이상 권장되지 않음을 표시할 수 있다.

 

0. System.Obsolete

Obsolete 키워드는 선언 바로 윗 부분에 [System.Obsolete]를 적어 적용할 수 있다.

 

형태는 총 3가지가 존재한다.

[System.Obsolete]: 기본 형태. 해당 메서드나 클래스가 권장되지 않음을 표시.

[System.Obsolete(string message)]: 기본 형태에 더해 추가 설명을 적을 수 있음.

[System.Obsolete(string message, bool error)]: 추가 설명에 더해 해당 메서드나 클래스 사용 시 컴파일 에러 여부를 정함.

 

1. 함수 Obsolete

Obsolete function(message)

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

Obsolete function in vscode

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

Obsolete function usage

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

Obsolete function(message, true)

 

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

Obsolete function compile error

2. 클래스 Obsolete

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

Obsolete class(message)

 

Obsolete class in vscode
Obsolete class usage
Obsolete class(message, true)
Obsolete class compile error

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

Obsolete class (message) in Inspector
Obsolete class (message, true) in Inspector

3. 변수 Obsolete

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

Obsolete Variable (message)
Obsolete variable in vscode
Obsolete variable (message, true)
Obsolete compile error

 

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

Obsolete variable in Inspector

결론

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
'게임개발/Unity' 카테고리의 다른 글
  • [Unity] Debug.Log 커스터마이징
  • [Unity] NetworkVariable, INetworkSerializable Synchronization Problem
  • [Unity] StopCoroutine, 코루틴 중지시키기
  • [Unity] Button OnClick Event is triggered twice
깜냥c
깜냥c
게임 개발/클라이언트/AI/PS/기타 연구
  • 깜냥c
    Choice Program
    깜냥c
  • 전체
    오늘
    어제
    • 분류 전체보기 (58)
      • 언어 (11)
        • C,C++ (9)
        • C# (1)
        • Python (1)
      • PS (20)
        • 백준 문제 (19)
        • 알고리즘 (1)
      • 인공지능 (2)
      • 게임제작 (7)
      • 게임개발 (15)
        • Unity (8)
        • Unreal Engine (5)
        • Godot Engine (1)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 블로그 소개
  • 링크

    • 김병장의 IT 블로그
    • 식품영양과 데이터사이언스
  • 공지사항

  • 인기 글

  • 태그

    배낭 문제
    UE5
    입출력
    C++
    Unreal
    BOJ
    C언어
    백준
    Godot
    unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
깜냥c
[Unity] 안쓰는 함수 멋지게 표현하기 (System.Obsolete)
상단으로

티스토리툴바