Unity 스크립팅 API 가이드
이 문서는 Unity에서 스크립트를 관리하고 컴파일하는 방법에 대해 설명합니다. Unity에서는 조건부 컴파일 및 사용자 정의 스크립팅 심볼을 사용하여 코드의 포함 여부를 제어할 수 있습니다.
스크립팅 심볼 정의
C# 지시문을 사용하여 특정 스크립팅 심볼에 따라 코드를 선택적으로 포함하거나 제외할 수 있습니다. 스크립팅 심볼은 빌트인 심볼뿐만 아니라 에디터 UI를 통해 또는 에셋 파일을 통해 설정할 수 있습니다.
에디터를 통한 스크립팅 심볼 설정
- Unity 에디터에서
Edit > Project Settings > Player로 이동합니다. - Other Settings 패널에서 Script Compilation까지 스크롤합니다.
- Scripting Define Symbols 필드에서
+,-버튼을 사용하여 커스텀 스크립팅 심볼을 추가 또는 제거합니다. - 변경 후
Apply를 클릭하여 새 심볼을 적용합니다.
| 항목 | 설명 |
|---|---|
| Copy Defines | 현재 커스텀 스크립팅 심볼 세트를 클립보드에 복사합니다. |
스크립트를 통한 스크립팅 심볼 정의
스크립팅 심볼을 정의하려면 아래의 API를 사용할 수 있습니다.
PlayerSettings.SetScriptingDefineSymbolsForGroupBuildPlayerOptions.extraScriptingDefines
이 메서드는 호출 시 즉시 적용되지 않습니다. 에디터가 제어를 반환한 후에 컴파일러가 새 심볼을 사용하여 스크립트를 다시 컴파일합니다.
배치 모드에서 스크립팅 심볼 설정
CI(지속적 통합) 서버에서 실행되는 에디터 스크립트는 비동기적 특성을 고려해야 합니다. 배치 모드로 실행될 경우 새 스크립팅 심볼로 다시 컴파일하는 editor loop가 발생하지 않으므로, 처음부터 올바른 심볼로 에디터가 실행되도록 설정해야 합니다.
에셋 파일을 통한 스크립팅 심볼 설정
프로젝트의 Assets 폴더에 csc.rsp라는 텍스트 파일을 추가하여 커스텀 스크립팅 심볼을 설정할 수 있습니다. 이 파일은 Unity가 시작될 때 읽히며, 코드가 컴파일되기 전에 적용됩니다.
| 항목 | 설명 |
|---|---|
| csc.rsp 파일 | 스크립팅 심볼을 전역적으로 설정하는 데 사용됩니다. |
| 다시 컴파일 | .rsp파일을 변경하면 Unity에서 다시 컴파일해야 합니다. 하나의 스크립트 파일을 업데이트하면 됩니다. |
조건부 컴파일 예제
조건부 컴파일은 주어진 스크립팅 심볼이 정의되어 있는지 여부에 따라 코드의 특정 부분을 포함하거나 제외할 수 있습니다.
#if UNITY_DEBUG
Debug.Log("디버그 모드");
#else
Debug.Log("릴리즈 모드");
#endif
위의 예제에서 UNITY_DEBUG가 정의되어 있을 경우 "디버그 모드" 메시지가 출력됩니다.
결론
Unity의 스크립팅 심볼 및 조건부 컴파일 기능은 코드 관리를 용이하게 하고, 다양한 플랫폼 및 빌드 변형에 따라 필요한 코드를 유연하게 제어할 수 있게 도와줍니다. 이를 통해 개발자는 더 효율적인 작업환경을 구축할 수 있습니다.