스크립팅 툴(Scripting Tools)
MonoDevelop

콘솔 창

콘솔 창(메뉴: 창(Window) > 콘솔(Console))은 Unity 에디터에서 생성되는 오류, 경고, 기타 메시지를 표시합니다. 디버깅을 돕기 위해 Debug.Log, Debug.LogWarning, Debug.LogError 함수를 사용하여 콘솔에 원하는 메시지를 표시할 수도 있습니다.

콘솔 창의 툴바에는 메시지를 표시하는 방법을 변경할 수 있는 여러 옵션이 있습니다.

지우기(Clear) 버튼은 컴파일러 오류를 제외하고 코드가 생성한 모든 메시지를 지웁니다. 플레이 시 지우기(Clear On Play) 옵션을 활성화하면 게임이 실행될 때 콘솔 창의 내용이 자동으로 지워지도록 설정할 수 있습니다.

또한 메시지를 콘솔에 표시하거나 업데이트하는 방법을 변경할 수 있습니다. 접기(Collapse) 옵션을 선택하면 반복해서 발생나는 오류 메시지를 모두 표시하는 대신 첫 번째 인스턴스만 표시합니다. 각 프레임 업데이트마다 동일하게 발생하는 null 레퍼런스와 같은 런타임 오류를 간결하게 보고 싶을 때 매우 유용합니다. 오류 일시정지(Error Pause) 옵션을 선택하면 Debug.LogError가 스크립트에서 호출될 때마다 재생이 일시 정지됩니다. Debug.Log는 일시 정지되지 않습니다. 이 옵션은 실행 중인 특정 시점에서 재생을 멈추고 씬을 검사하고 싶을 때 편리하게 사용할 수 있습니다.

마지막으로, 오류에 대한 추가 정보를 보기 위한 두 가지 옵션이 있습니다. 콘솔 탭 메뉴의 플레이어 로그 열기(Open Player Log)에디터 로그 열기(Open Editor Log) 옵션을 사용하면 콘솔에 표시되지 않는 세부 정보까지 기록하는 Unity의 로그 파일에 접근할 수 있습니다. 자세한 내용은 로그 파일 페이지를 참조하십시오.

쓸모없는 API 경고 및 자동 업데이트

Unity 에디터는 코드에서 쓸모없는 API 호출이 사용되면 경고를 표시합니다. 예를 들어 Unity 에디터에는 MonoBehaviour 및 다른 클래스에서 일반 컴포넌트 타입에 액세스하기 위한 “단축키”가 있었습니다. 예를 들어 다음과 같은 코드를 사용하여 오브젝트의 리지드바디에 액세스할 수 있었습니다.

    // The "rigidbody" variable is part of the class and not declared in the user script.
        Vector3 v = rigidbody.velocity;

이 단축키는 더 이상 지원되지 않으므로 다음과 같은 코드를 사용해야 합니다.

    // Use GetComponent to access the component.
        Rigidbody rb = GetComponent<Rigidbody>();
        Vector3 v = rb.velocity;

쓸모없는 API 호출이 감지되면 Unity는 이에 대한 경고 메시지를 표시합니다. 이 메시지를 두 번 클릭하면 Unity는 제외 예정인 사용을 사용이 권장되는 동급으로 자동 업그레이드하려고 시도합니다.

스택 추적 로깅

로그 메시지가 콘솔이나 로그 파일로 출력될 때 스택 추적의 정확도 레벨을 명시할 수 있습니다.

이 옵션은 오류 메시지가 명확하지 않을 때 특히 유용합니다. 스택 추적을 통해 어느 엔진 영역에서 오류가 발생했는지 추론할 수 있습니다. 스택 추적 로깅 옵션은 다음 세 가지입니다.

  • None - 스택 추적을 출력하지 않습니다.
  • ScriptOnly - 관리되는 스택 추적 내용만 출력합니다.
  • Full - 기본 스택 및 관리되는 스택 추적이 모두 출력됩니다. 분석 전체 스택 추적은 비용이 많이 드는 작업이므로 디버깅 목적으로만 사용해야 합니다.

또한 스크립팅 API를 통해 스택 추적 로깅을 제어할 수도 있습니다. Application.stackTraceLogType을 참조하십시오.

스크립팅 툴(Scripting Tools)
MonoDevelop