기술 자료

Unity Engine

Unity Engine

Unity 스크립팅 심볼 레퍼런스

A reference of the predefined scripting symbols Unity provides.
읽는 시간 4분최근 업데이트: 한 달 전

플랫폼 심볼

Unity는 저작 및 빌드 타겟 플랫폼을 기반으로 특정 심볼을 자동으로 정의합니다. 이는 다음과 같습니다.

Define

기능

UNITY_EDITOR게임 코드에서 Unity 에디터 스크립트를 호출하는 스크립팅 심볼.
UNITY_EDITOR_WINWindows에서의 에디터 코드용 스크립팅 심볼.
UNITY_EDITOR_OSXmacOS에서의 에디터 코드용 스크립팅 심볼.
UNITY_EDITOR_LINUXLinux에서의 에디터 코드용 스크립팅 심볼.
UNITY_EMBEDDED_LINUX포함된 Linux용 스크립팅 심볼.
UNITY_QNXQNX용 스크립팅 심볼.
UNITY_STANDALONE_OSX(Universal 아키텍처, PPC 아키텍처와 Intel 아키텍처를 포함한) macOS 전용 코드를 컴파일 또는 실행하기 위한 스크립팅 심볼.
UNITY_STANDALONE_WINWindows 스탠드얼론 애플리케이션 전용 컴파일링/실행 코드용 스크립팅 심볼.
UNITY_STANDALONE_LINUXLinux 스탠드얼론 애플리케이션 전용 컴파일링/실행 코드용 스크립팅 심볼.
UNITY_STANDALONE스탠드얼론 플랫폼(Mac OS X, Windows 또는 Linux) 전용 컴파일링/실행 코드용 스크립팅 심볼.
UNITY_SERVER전용 서버(macOS, Windows 또는 Linux)의 컴파일링/실행 코드용 스크립팅 심볼.
UNITY_IOSiOS 플랫폼용 컴파일링/실행 코드용 스크립팅 심볼.
UNITY_ANDROIDAndroid 플랫폼용 스크립팅 심볼.
UNITY_TVOSApple TV 플랫폼용 스크립팅 심볼
UNITY_VISIONOSVisionOS 플랫폼용 스크립팅 심볼.
UNITY_WSA유니버설 Windows 플랫폼용 스크립팅 심볼.
UNITY_WSA_10_0유니버설 Windows 플랫폼용 스크립팅 심볼.
UNITY_WEBGL웹용 스크립팅 심볼.
UNITY_ANALYTICS게임 코드에서 Unity 애널리틱스 메서드를 호출하기 위한 스크립팅 심볼.
UNITY_ASSERTIONS행사 컨트롤 프로세스를 위한 스크립팅 심볼
UNITY_6464비트 플랫폼용 스크립팅 심볼 실제로는 모든 64비트 아키텍처에서 작동하지 않으며 특정 플랫폼의 다른 CPU 아키텍처가 동일한 컴파일된 어셈블리를 공유할 수 있으므로 이 방법을 사용해서는 안 됩니다. 아키텍처를 기반으로 하여 조건부로 코드를 실행하려면 IntPtr.Size를 확인하는 표준
if
문을 사용하십시오(32비트 프로세스에서는
4
, 64비트 프로세스에서는
8
). 예시는 지시문에 대한 대안을 참조하십시오.

Unity 에디터 버전 심볼

Unity는 현재 사용 중인 Unity 에디터 버전에 따라 특정 스크립팅 심볼을 자동으로 정의합니다.
버전 X.Y.Z 에 따라(예: 2019.4.14) Unity는 세 개의 글로벌 스크립팅 심볼을 다음과 같은 포맷으로 나타냅니다. UNITY_X, UNITY_X_Y, UNITY_X_Y_Z.
Unity 2019.4.14에서 나타나는 스크립팅 심볼 예시입니다.

Define

기능

UNITY_2019모든 2019.Y.Z 릴리스에서 나타나는 Unity 2019의 릴리스 버전에 해당하는 스크립팅 심볼입니다.
UNITY_2019_4모든 2019.4.Z 릴리스에서 나타나는 Unity 2019.4의 주요 버전에 해당하는 스크립팅 심볼입니다.
UNITY_2019_4_14Unity 2019.4.14의 부 버전에 해당하는 스크립팅 심볼입니다.
코드 스니핏 섹션을 컴파일하거나 실행하는 데 필요한 Unity 최초 버전을 기반으로 코드를 선택적으로 컴파일할 수도 있습니다. 위와 동일한 버전 포맷(X.Y)에 따라 Unity는 이 목적으로 사용할 수 있는 UNITY_X_Y_OR_NEWER 포맷으로 하나의 전역
#define
을 노출합니다.

기타 심볼

Unity에서 정의하는 기타 심볼은 다음과 같습니다.

Define

기능

CSHARP_7_3_OR_NEWERC# 7.3 이상 지원하는 스크립트를 빌드할 때의 정의입니다.
ENABLE_MONOMono를 위한 스크립팅 백엔드 #define입니다.
ENABLE_IL2CPPIL2CPP를 위한 스크립팅 백엔드 #define입니다.
ENABLE_VR타겟 빌드 플랫폼이 VR을 지원할 때의 정의입니다. 현재 VR이 활성화되어 있거나 VR을 지원하는 데 필요한 플러그인과 패키지가 설치되어 있음을 의미하지는 않습니다.
NET_2_0Mono 및 IL2CPP에서 .NET 2.0 API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NET_2_0_SUBSETMono와 IL2CPP에서 .NET 2.0 Subset API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NET_LEGACYMono와 IL2CPP에서 .NET 2.0 또는 .NET 2.0 Subset API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NET_4_6Mono 및 IL2CPP에서 .NET 4.x API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NET_STANDARD_2_0Mono 및 IL2CPP에서 .NET 스탠다드 2.0 API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NET_STANDARD_2_1Mono 및 IL2CPP에서 .NET 스탠다드 2.1 API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NET_STANDARDMono 및 IL2CPP에서 .NET 스탠다드 2.1 API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NETSTANDARD2_1Mono 및 IL2CPP에서 .NET 스탠다드 2.1 API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
NETSTANDARDMono 및 IL2CPP에서 .NET 스탠다드 2.1 API 호환성 레벨에 스크립트를 빌드할 때의 정의입니다.
ENABLE_WINMD_SUPPORTWindows 런타임 지원이 IL2CPP에서 활성화된 경우에 정의됩니다. 자세한 내용은 Windows 런타임 지원을 참조하십시오.
ENABLE_INPUT_SYSTEM플레이어 설정에 입력 시스템 패키지가 활성화되었을 때 정의됩니다.
ENABLE_LEGACY_INPUT_MANAGER플레이어 설정에 레거시 입력 관리자가 활성화되었을 때 정의됩니다.
DEVELOPMENT_BUILD스크립트가 Development Build 옵션이 활성화될 때 빌드된 플레이어에서 실행될 때 정의됩니다.

이 정의는 빌드 시 개발 빌드 옵션이 활성화되었는지 여부만 반영합니다. 스크립트가 개발 빌드 모드에서 실행 중인지 확인하려면 Debug.isDebugBuild를 사용하십시오.
__DEVELOPMENT\_BUILD__
는 현재 개발 빌드에서 실행 중인지 확인하기에 충분하지 않습니다. 대부분의 플랫폼에서는 프로젝트를 다시 빌드하지 않고도 개발 빌드와 비개발 빌드를 전환할 수 있습니다. 하지만 일부 플랫폼에서는 Unity가 에디터에서 개발 빌드와 비개발 빌드 간 전환을 지원하지 않으며, 빌드가 완료된 후에 전환해야 합니다. 예를 들어 Windows에서는 Visual Studio에서 개발 빌드 또는 비개발 빌드를 원하는지 선택하기 위해 Create Visual Studio solution 옵션을 선택할 수 있습니다. Visual Studio에서 전환하면 스크립트를 다시 컴파일하지 않으므로 스크립팅 정의를 다시 평가하지 않습니다. 라이브 게임 빌드를 디버깅하기 위해 게임 빌드의
UnityPlayer.dll
을 개발 빌드의 빌드로 교체하여 최종 게임 빌드에서 개발 빌드로 전환할 수도 있습니다.
UNITY_CLOUD_BUILD프로젝트가 Unity Build Automation으로 빌드될 때 정의됩니다.
참고:
DEBUG
심볼은 C#에서 사전 정의되며 Unity에서는 지시문
#if DEBUG
를 사용하는 것이
#if UNITY_EDITOR || DEVELOPMENT_BUILD
와 동등합니다.

추가 리소스