디바이스에서 Debug.Log 메시지 출력하지 않도록 하기
Unity3D/Tips / 2013. 8. 19. 21:43
Unity에서 프로그래밍할 때 콘솔에 디버깅이나 경고 혹은 에러 문자열 출력을 위해서 Debug.Log 의 메시지 출력 메소드를 많이 사용합니다.
문제는 Debug.Log 메소드의 이름과 달리 해당 콘솔 출력이 디바이스에 deploy해서 실행할 때에도 실행이 된다는 점입니다.
처음부터 Debug.Log 메시지를 대체하는 별도의 wrapper 클래스나 메소드를 작성해서 사용한 경우라면 문제가 되지 않지만, 프로젝트 내에 이미 수 많은 Debug.Log 메시지들이 존재하는 경우, 변경이 번거로울 수 있습니다.
이 때 사용할 수 있는 간단한 방법이 .NET의 System.Diagnostics.Conditional 속성을 사용하는 것입니다.
public static class Debug
{
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void Log (object message)
{
UnityEngine.Debug.Log (message);
}}
전체 코드는 아래 링크의 gist에서 확인할 수 있습니다.
Debug 클래스에는 Debug.Log 뿐만 아니라 UnityEngine.Debug 클래스의 DrawLine, DrawRay 등을 포함한 모든 메소드들에 대한 대체 메소드들을 포함하고 있습니다.
사용 방법은 링크의 전체 코드를 Assets 폴더 내의 Plugins 폴더에 저장하면 됩니다.
[추가][Unity 5.3 이상]
It works. |
반응형
'Unity3D > Tips' 카테고리의 다른 글
하이어라키(Hierarchy)에서 GameObject Active/InActive HotKey for NGUI (2) | 2013.10.28 |
---|---|
iOS Player 빌드 사이즈 최적화 하기 (0) | 2013.08.19 |
유니티 안드로이드 플러그인 만들기 (0) | 2013.07.24 |
Unity3d Texture 레퍼런스정리 (0) | 2013.07.03 |
유니티 메모리 최적화 (0) | 2013.07.03 |
zhangzhibin commentedon 6 Nov 2016