본문 바로가기
Unity 유니티 기초강의

Unity 플랫폼 매크로 전처리 Define 정의

by 만사오케이프로 2022. 6. 4.
반응형

플랫폼 의존 컴파일

Unity는 “플랫폼 의존 컴파일” 전처리 기능이 있습니다. 여러 디바이스에 사용할수 있도록 전 처리기 지시문이 포함되어 있으며 스크립트를 파티션화 할수있습니다. 파티션화는 코드의 일부 섹션을 지원하는 하나의 플랫폼 독점적으로 실행할 수 있게 됩니다.

 

플랫폼 매크로 정의

Unity 스크립트에서 지원하는 플랫폼 매크로 정의들을 알면 좋습니다.

주로 많이 사용하는 정의만 알아 보겠습니다.

 

UNITY_EDITOR Unity 스크립트에서 지원하는 플랫폼 매크로 정의입니다
UNITY_EDITOR_WIN Windows에서의 플랫폼 정의 에디터 코드입니다
UNITY_EDITOR_OSX Mac OSX에서의 플랫폼 정의 에디터 코드입니다.
UNITY_STANDALONE_OSX Mac OS (Univeral, PPC 및 Intel 아키텍처 포함) 의 코드 컴파일 / 실행을 위한 플랫폼 매크로 정의입니다.
UNITY_STANDALONE_WIN Windows 독립 실행형 응용 프로그램 코드를 컴파일 / 실행하고 싶을 때 사용합니다.
UNITY_STANDALONE_LINUX Linux 독립 실행형 응용 프로그램 코드를 컴파일 / 실행하고 싶을 때 사용합니다.
UNITY_STANDALONE 모든 독립 실행형 응용 프로그램(Mac, Windows 또는 Linux)의 코드를 컴파일 / 실행하고 싶을 때 사용합니다.
UNITY_WII Wii 콘솔 코드 컴파일 / 실행을 위한 플랫폼 매크로 정의합니다.
UNITY_IOS iOS 플랫폼에서 코드 컴파일/실행을 위한 플랫폼 매크로 정의합니다
UNITY_ANDROID Android 플랫폼의 플랫폼 매크로 정의입니다.
UNITY_PS3 PlayStation 3에서 코드 컴파일 / 실행을 위한 플랫폼 매크로 정의입니다.
UNITY_PS4 PlayStation 4에서 코드 컴파일 / 실행을 위한 플랫폼 매크로 정의입니다
UNITY_SAMSUNGTV XBox 360 코드의 컴파일 / 실행을 위한 플랫폼 매크로 정의입니다.
public class TestPlatformDefines : MonoBehaviour {
    void Start () {

#if UNITY_EDITOR
        Debug.Log("Unity Editor"); //에디터 실행
#endif
    
#if UNITY_IOS
      Debug.Log("Iphone"); //ios 에 실행
#endif

#if UNITY_STANDALONE_OSX
    Debug.Log("Stand Alone OSX"); //맥 프로그램에서 실행
#endif

#if UNITY_STANDALONE_WIN
        Debug.Log("Stand Alone Windows"); //윈도우 프로그램에서 실행
#endif

    }          
}

플랫폼의 사용자 정의

사용자 정의 전처리 Define 을할수 있습니다. 

Player Settings -> Other Settings -> Configuration -> Scripting Define Symbols

 

 

public class TestPlatformDefines : MonoBehaviour {
    void Start () {

#if TESTDefine
        Debug.Log("TESTDefine"); //사용자 정의 Define
#endif

    }          
}
반응형

댓글