Unity 스크립팅 API 가이드 (2022.3 LTS)
이 문서는 Unity에서 스크립트를 작성할 때 사용할 수 있는 조건부 컴파일 및 스크립팅 심볼에 대한 가이드입니다. 이해를 돕기 위해 각 부분에 대한 간단한 해설과 활용 예제를 포함하겠습니다.
스크립팅 심볼이란?
Unity에서는 특정 플랫폼이나 환경에 따라 코드를 선택적으로 포함하거나 제외하기 위해 ‘스크립팅 심볼’을 사용합니다. 이를 통해 동일한 코드베이스에서 다양한 플랫폼에 대한 빌드를 쉽게 관리할 수 있습니다.
조건부 컴파일
조건부 컴파일은 C#의 지시문을 사용하여 코드의 일부가 특정 조건에서만 컴파일되도록 하는 방법입니다. 예를 들어, Windows 플랫폼에서만 작동하는 코드는 UNITY_STANDALONE_WIN
심볼을 통해 정의할 수 있습니다.
#if UNITY_STANDALONE_WIN
Debug.Log("Standalone Windows");
#endif
주요 스크립팅 심볼
Unity에서는 다양한 스크립팅 심볼을 제공합니다. 이들은 플랫폼과 에디터 버전에 따라 자동으로 정의되며, 아래와 같은 주요 심볼들이 있습니다.
스크립팅 심볼 | 설명 |
---|---|
UNITY_EDITOR | Unity 에디터에서 실행 중일 때 사용 |
UNITY_IOS | iOS 플랫폼을 위한 코드 |
UNITY_ANDROID | Android 플랫폼을 위한 코드 |
UNITY_STANDALONE_WIN | Windows 스탠드얼론 애플리케이션용 코드 |
UNITY_WEBGL | WebGL 플랫폼을 위한 코드 |
UNITY_FACEBOOK | Facebook 플랫폼을 위한 코드 |
플랫폼에 따른 정의 예시
Unity는 각 플랫폼에 따라 특정 스크립팅 심볼을 자동으로 정의합니다. 예를 들어, Windows에서 에디터 코드를 사용하는 경우, UNITY_EDITOR_WIN
이 정의됩니다.
커스텀 스크립팅 심볼
개발자는 에디터 UI 또는 스크립팅을 통해 커스텀 스크립팅 심볼을 정의하여 코드의 일부를 컴파일할 수 있습니다.
#if CUSTOM_SYMBOL
Debug.Log("Custom Symbol Defined");
#endif
활용 예제
아래 예제는 선택한 플랫폼에 따라 다양한 메시지를 출력하는 방법을 보여줍니다.
using UnityEngine;
public class PlatformDefines : MonoBehaviour {
void Start() {
#if UNITY_EDITOR
Debug.Log("Unity Editor");
#elif UNITY_IOS
Debug.Log("Unity iOS");
#elif UNITY_STANDALONE_WIN
Debug.Log("Standalone Windows");
#else
Debug.Log("Any other platform");
#endif
}
}
이 코드는 Start()
함수에서 선택한 플랫폼에 맞는 메시지를 출력합니다. 예를 들어, iOS 플랫폼을 사용할 경우 "Unity iOS" 메시지가 나타납니다.
결론
Unity의 스크립팅 심볼과 조건부 컴파일 기능은 플랫폼별로 코드를 효율적으로 관리하는 데 매우 유용합니다. 이러한 기능을 적절히 활용하면 크로스 플랫폼 개발이 한층 더 수월해질 것입니다. 추가적인 정보와 예제는 Unity 공식 문서를 참조하시기 바랍니다.