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

스크립팅 툴
MonoDevelop