스크립팅 툴(Scripting Tools)
MonoDevelop

콘솔 창(Console Window)

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

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

Clear 버튼은 코드가 생성한 모든 메시지를 삭제하지만 컴파일러 오류는 그대로 둡니다. Clear On Play 옵션을 활성화하면 게임을 실행할 때마다 콘솔이 자동으로 지워지도록 할 수 있습니다.

또한 메시지가 콘솔에 표시 및 업데이트되는 방법을 변경할 수 있습니다. Collapse 옵션은 반복하여 일어나는 오류 메시지의 첫 번째 인스턴스만 보여줍니다. 이 옵션은 각 프레임 업데이트마다 동일하게 발생하는 null 레퍼런스와 같은 런타임 오류 시 매우 유용합니다. Error Pause 옵션은 Debug.LogError가 스크립트에서 호출될 때마다 재생을 일시정지시킵니다. 그러나 이 방법으로는 Debug.Log는 일시정지하지 않습니다. 이 옵션은 실행 중인 특정 시점에서 재생을 고정하고 씬을 검사하고 싶을 때 편리합니다.

마지막으로, 오류에 대한 추가 정보를 보기 위한 두 가지 옵션이 있습니다. 콘솔 탭 메뉴의 Open Player LogOpen 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