전처리기 / Define


유니티 Define 기능은 각 플랫폼 또는 특정 버전에 코드를 처리할때 유용한 방법이다.



전처리기


멀티플랫폼이 가능한 유니티다 이 말은 하나의 프로젝트로 여러가지 플랫폼으로 빌드가 가능하다는 말이다. 멀티플랫폼이라서 그렇게 간단하게 각기 다른 플래폼 적용이 쉬운것은 아니다. 


안드로이드,IOS,윈도우 각각 플랫폼마다 적용해야 하는 코드가 다를 수 있다. 그러면 플랫폼이 바뀔때마다 스크립트를 각각 별도로 만들어야하고 동적으로 플랫폼을 확인한 후에 컴포넌트를 추가해야 한다.

프로젝트가 커질 수록 작업양은 점점 많아 질 것이다.  



이럴 때 사용하는 것이 전처리기이다.


구문

#if UNITY_EDITOR

Debug.Log("Unity Editor");

#endif


예제)


유니티 에디터에서 각각 다른 플랫폼에서 다른 로그가 나오도록 설정할 수 있는 것이다. 


<유니티에서 지정해놓은 전처리기>



사용자 커스텀 전처리기

유니티가 지정해 놓은 전처리기 말고 사용자가 원하는 전처리기를 만들 수 가 있다.

1.UnityEditor에서 사용자 디파인 셋팅


edit -> Player Settings -> Other Setting -> Scripting Define Symbols




정의하고 싶은 특정 플랫폼의 기호 이름을 입력한다.



Player Settings에는 SHOW_DEBUG_MESSAGES 설정을 했으니


"디파인 테스트2"만 출력된다.






2. using UnityEditor; 필요



특징 컴파일 시 Define여부에 따라 컴파일 자체를 하지 않기 때문에, 실행파일에 코드가 포함되지 않는다.

Define으로 인해 유니티에서 현재 선택되어진 플랫폼이 아닌 다른 플랫폼의 코드들의 스킙트 에러 여부를 바로 확인할 수 가 있다.




학습참고

1) https://docs.unity3d.com/kr/530/Manual/PlatformDependentCompilation.html

2) http://blog.naver.com/PostView.nhn?blogId=hope0510&logNo=220079637714

3) https://bluemeta.tistory.com/12


반응형

+ Recent posts