[Unity] 특별한 전처리기(Preprocesor) 플래그 사용
[Unity] 특별한 전처리기(Preprocesor) 플래그 사용
앱을 출시하기 전까지 수 많은 테스트와 디버깅을 한다.
이 과정에서 테스트 시에만 사용해야 할 코드가 있고
출시해야할 때는 제거해야하는 코드가 있다.
즉 릴리즈(release) 코드와 디버그(debug) 코드 2가지가 있는 것인데
매번 디버깅을 할 때 코드를 추가하고 릴리즈 할 때는 제거하고
디버깅 코드를 삽입 후 릴리즈 할 때는 주석 처리를 하려고 한다면
개발자가 귀찮은것도 있지만 가장 중요한 문제는
릴리즈에 디버깅용 코드가 들어 간다는 점이다.
실제로 디버깅 코드가 배포되어 문제가 되는 경우도 다반사다.
이런 문제를 해결 하기 위해 유니티에서는
전처리기 플래그 기능이 들어 있다.
예를 들어 코드를 한번 보도록 하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Block : MonoBehaviour { private float blockSize = 10.0f; // Use this for initialization void Start() { // DEBUG 할 때만 활성화 되도록 하는 전처리기 플래그 #if DEBUG_TEST_BLOCK // DEBUG_TEST_BLOCK가 선언되어 있으면 활성화 된다 blockSize = 20.0f; #endif } // Update is called once per frame void Update () { } } | cs |
이러한 코드가 있다.
디버깅 모드에서는 블록의 사이즈를 20으로 하고 싶다.
릴리즈 할 때는 블록 사이즈를 10으로 해야 한다.
이러한 경우 전처리기 플래그를 사용하여
위와 같이 처리를 할 수 있다.
전처리기가 선언되어 있는 경우에만
16라인이 실행이 되는 것이다.
위와 같이 코딩을 했다고 되는 것은 아니며
이제 전처리기를 실제로 선언을 해야 한다.
전처리기를 선언하는 부분은
Edit > Project Settings > Player 로 가면
Inspector 창에 Scripting Define Symbols 필드가 있다.
이곳에 DEBUG_TEST_BLOCK 전처리기를 선언 하면
16 라인이 활성화 되며
실행되는 것이다.
그리고 릴리즈 할 때는 위 전처리기를 제거하면 되는 것이다.
이 디버깅 코드가 한개가 아니라
100개의 스크립트에 한개씩 존재 한다면
과연 주석 처리가 가능할까?
이럴 때 유용하게 사용할 수 있도록 해놓은 것이다.
실제로 매우 많이 사용 하는 기능이니
잘 알아두도록 하자.
'Unity' 카테고리의 다른 글
[Unity] Timestamp 구하는 방법 (0) | 2018.08.10 |
---|---|
[Unity] 숫자 콤마(,) 넣기 (금액표시 유용) (0) | 2018.03.26 |
[Unity] UI Toggle을 이용한 Tap 기능 만들기 (0) | 2018.03.13 |
[Unity] SerializeField와 HideInInspector (0) | 2018.03.12 |
[Unity] Canvas UI Button을 활성 비활성 시켜보자!! (0) | 2018.03.07 |
댓글