Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- list clear
- 너비탐색
- unity sparkmain(clone)
- raycast
- 습관형성 #직장인자기계발 #오공완
- 최소신장트리 mst
- removeAll
- 크루스칼
- readonly
- 깊이탐색
- dfs
- 행동트리
- 유니티 sparkmain(clone)
- 티스토리챌린지
- navisworks api
- 트리구조
- 디지털트윈
- sparkmain(clone)
- 유니티
- Unity
- 최단거리 알고리즘
- C#
- unity korea
- articulation body
- 오블완
- sparkmain(clone) 무한생성
- 드롭다운
- Simulation
- GetComponent
- dropdown
Archives
- Today
- Total
낑깡의 게임 프로그래밍 도전기
Unity C# Obsolete 어트리뷰트 본문
반응형
1. 개요
[Obsolete]는 더 이상 사용되지 않는 코드(메서드, 클래스, 필드 등) 에 표시하는 C# 어트리뷰트입니다.
- 해당 코드 사용 시 경고(WARNING) 또는 오류(ERROR)를 발생시킴.
- 새로운 API로의 전환을 유도하는 용도로 사용.
- Unity에서도 기존 함수의 폐기(Deprecated) 시 사용됨.
2. 기본 사용법
[Obsolete]
void OldMethod()
{
Debug.Log("이 메서드는 더 이상 사용되지 않습니다.");
}
3. 사용자 메시지 추가
[Obsolete("NewMethod()를 대신 사용하세요.")]
void OldMethod()
{
Debug.Log("이 메서드는 더 이상 사용되지 않습니다.");
}
⚠ 경고 메시지:
"OldMethod()는 더 이상 사용되지 않습니다. NewMethod()를 대신 사용하세요."
4. 오류로 변경 (error = true)
더 이상 사용 불가능하게 만들기
[Obsolete("NewMethod()를 대신 사용하세요.", true)]
void OldMethod()
{
Debug.Log("이 메서드는 실행되지 않습니다.");
}
🚨 컴파일 오류 발생 (실행 불가)
"OldMethod()는 더 이상 사용되지 않습니다. NewMethod()를 대신 사용하세요."
5. 실전 예제 (대체 함수 제공)
class Example
{
[Obsolete("Use NewMethod() instead.", false)]
public void OldMethod() { Debug.Log("구버전"); }
public void NewMethod() { Debug.Log("신버전"); }
}
Example ex = new Example();
ex.OldMethod(); // 경고 발생
ex.NewMethod(); // 정상 실행
6. Unity에서의 활용 예시
(1) Unity의 기존 API 변경
Unity는 종종 오래된 함수를 [Obsolete] 처리하여 새 함수로 대체합니다.
예: Application.LoadLevel() → SceneManager.LoadScene()
[Obsolete("Use SceneManager.LoadScene instead.")]
public static void LoadLevel(string name)
{
SceneManager.LoadScene(name);
}
(2) 게임 개발에서 API 변경 시 유도
[Obsolete("MovePlayer(float x, float y)를 대신 사용하세요.")]
public void MovePlayer(Vector2 position)
{
MovePlayer(position.x, position.y);
}
public void MovePlayer(float x, float y)
{
Debug.Log($"플레이어 이동: {x}, {y}");
}
개발자가 기존 코드를 사용하지 않고 새로운 함수로 전환하도록 유도 가능.
7. 요약
▶ [Obsolete]로 더 이상 사용되지 않는 코드를 표시.
▶ "경고 메시지"를 추가해 대체 API 안내 가능.
▶ true 설정 시 컴파일 오류 발생 (사용 완전 금지).
▶ Unity API 변경 시 자주 사용됨 (Application.LoadLevel() → SceneManager.LoadScene()).
반응형
'Unity C#' 카테고리의 다른 글
| Unity C# XML 주석 param 태그 (0) | 2024.06.26 |
|---|---|
| Unity Pixels Per Unit Multiplier (0) | 2024.06.20 |
| Unity C# : 런타임에서 생성된 오브젝트 프리팹으로 만들기(런타임 프리팹 추가) *에디터용 (0) | 2024.06.12 |
| Unity C# : TriLibCore 사용 시 로드 파일 경로 반환 - 하편 -(StandaloneFileBrowser / UnityEditor) (0) | 2024.06.11 |
| Unity C# : Json Save기능 구현하기 (외부에서 불러들인 Fbx 모델링 저장) (0) | 2024.06.11 |