2021. 2. 2. 11:21
Unity
디버그빌드모드에서만 작동하는 코드
if (Debug.isDebugBuild)
{
//작동할 코드
}
V3
#if UNITY_EDITOR
if (UnityEditor.EditorUserBuildSettings.development)
#else
if (UnityEngine.Debug.isDebugBuild)
#endif
{
//작동할 코드
}
디버그모드에서만 작동
#if UNITY_EDITOR
bool IsInspectorInDebugMode()
{
var inspectorType = typeof(Editor).Assembly.GetType("UnityEditor.InspectorWindow");
if (inspectorType != null)
{
var window = EditorWindow.GetWindow(inspectorType);
var isDebugMode = inspectorType.GetProperty("mode", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
if (isDebugMode != null)
{
return (int)isDebugMode.GetValue(window) == 1; // 1: Debug 모드, 0: Normal 모드
}
}
return false;
}
#endif
권장되는 방법은 아님
FPS체크
(디버그빌드모드에서만 동작하게 해놨다)
using UnityEngine;
public class FpsViewer : MonoBehaviour
{
float fps = 60;
private void OnGUI()
{
#if UNITY_EDITOR
if (UnityEditor.EditorUserBuildSettings.development)
#else
if (UnityEngine.Debug.isDebugBuild)
#endif
{
fps = Mathf.Lerp(fps, (1 / Time.deltaTime), 0.05f);
GUI.Box(new Rect(100, 0, 200, 24), "FPS: " + (int)fps);
}
}
}
Debug함수들
Debug.LogError("에러문구");
Debug.LogWarning("주의문구");
//일시중지버튼. 반드시 꼭 짚고 넘어가야 하는 에러일때 사용(Editor에서만 작동)
Debug.Break();
중단점 사용법
값볼수있다
어떤 함수가 실행됐는지 확인
var methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
Debug.Log("{methodName}실행됨");
'Unity' 카테고리의 다른 글
안드로이드 빌드관련 (구글플레이 관련) (0) | 2021.02.03 |
---|---|
유니티 UI (0) | 2021.01.30 |
유니티 카메라 (0) | 2021.01.27 |