스크립팅 툴
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을 참조하십시오.

스크립팅 툴
MonoDevelop