스크립팅 툴
로그 파일

콘솔 창

Console 창은 Unity에서 생성되는 오류, 경고, 기타 메시지를 표시합니다.

Debug.Log, Debug.LogWarning, Debug.LogError 함수를 사용하여 콘솔에 원하는 메시지를 표시할 수도 있습니다.

콘솔 창을 열려면 Unity 메인 메뉴에서 Window > General > Console을 선택합니.

A. 콘솔(Console) 창 메뉴에는 로그 파일을 열고, 리스트에 표시되는 각 메시지의 양을 제어하고, 스택 추적 옵션을 설정하기 위한 옵션들이 있습니다.

B. 콘솔 툴바에는 메시지 표시 방식을 제어하고 메시지를 검색 및 필터링하기 위한 옵션이 있습니다.

C. 콘솔 리스트는 기록된 각 메시지에 대한 항목을 표시합니다.

상세 영역에 전체 텍스트를 표시할 메시지를 선택하십시오. 여기에서 표시할 각 메시지의 줄 수를 선택할 수 있습니다.

자세한 내용은 아래의 줄 수 조절을 참조하십시오.

D. 상세 영역에는 선택한 메시지의 전체 텍스트가 표시됩니다.

스택 추적이 활성화된 경우에는 코드 파일의 특정 라인에 대한 참조가 클릭 가능한 링크로 여기에 표시됩니다.

콘솔 툴바 옵션

콘솔 창의 툴바에는 메시지 표시 방식을 제어하고 메시지를 검색 및 필터링하기 위한 옵션이 있습니다.

옵션: 기능:
Clear 컴파일러 오류를 제외하고 코드가 생성한 모든 메시지를 지웁니다.
Collapse 반복해서 발생하는 오류 메시지를 모두 표시하는 대신 첫 번째 인스턴스만 표시합니다.

각 프레임 업데이트마다 발생하는 null 레퍼런스와 같은 런타임 오류를 간결하게 보고 싶을 때 매우 유용합니다.
Clear On Play 플레이 모드를 실행할 때 콘솔 창의 내용을 자동으로 지웁니다.
Clear on Build 프로젝트를 빌드할 때 콘솔의 내용을 지웁니다.
Error Pause Debug.LogError가 스크립트에서 호출될 때마다 재생이 일시 정지됩니다.

이 옵션은 실행 중인 특정 시점에서 재생을 멈추고 씬을 검사하고 싶을 때 유용합니다.

Debug.Log가 호출될 때는 재생이 일시 정지되지 않습니다.
[Attach-to-Player] 원격 기기에서 실행 중인 개발 빌드에 연결하고 해당 플레이어 로그를 콘솔에 표시하기 위한 옵션이 들어 있는 드롭다운 메뉴를 엽니다.

이 옵션에는 타겟 개발 빌드(콘솔 창에 표시되는 로그의 빌드)의 이름이 레이블로 지정되어 있습니다. 콘솔이 원격 빌드에 연결되지 않으면 Editor라는 레이블이 지정됩니다. 이는 로컬 Unity 에디터의 콘솔 창에 표시된 로그라는 의미입니다.
Player Logging 콘솔이 원격 개발 빌드에 연결되면 해당 빌드에 대한 플레이어 로깅이 활성화됩니다.

이 옵션을 비활성화하면 로깅이 일시 중단되지만, 콘솔은 타겟 빌드에 계속 연결된 상태를 유지합니다.

또한 이 옵션을 비활성화하면 이 드롭다운 메뉴의 나머지 옵션을 숨깁니다.

Player Logging 아래에 나열된 빌드를 선택하여 해당 로그를 콘솔 창에 표시하십시오.
에디터 콘솔이 원격 개발 빌드에 연결되면 이 옵션을 선택하여 원격 빌드의 로그 대신 로컬 Unity 플레이어의 로그를 표시하십시오.
<Enter IP> Enter Player IP 다이얼로그를 엽니다. 여기에서 원격 기기의 개발 빌드에 대한 IP 주소를 지정할 수 있습니다.

다이얼로그의 Connect 버튼을 클릭하여 드롭다운 메뉴의 하단에 있는 개발 빌드 리스트에 추가하십시오.
[DEVELOPMENT BUILDS] 이용 가능한 개발 빌드를 나열합니다. 여기에는 자동으로 감지된 빌드뿐만 아니라 Enter IP 옵션을 통해 추가하는 빌드도 포함됩니다.
Messages switch 콘솔의 메시지 수를 표시합니다. 클릭하면 메시지를 표시하거나 숨깁니다.
Warnings switch 콘솔의 경고 수를 표시합니다. 클릭하면 경고를 표시하거나 숨깁니다.
Errors switch 콘솔의 오류 수를 표시합니다. 클릭하면 오류를 표시하거나 숨깁니다.

콘솔 출력 검색 및 필터링

콘솔 검색창에서 특정 키워드에 대한 콘솔 메시지를 검색할 수 있습니다. 검색어를 입력하면 콘솔이 메시지를 필터링하여 일치하는 텍스트가 포함된 결과만 표시합니다. 콘솔은 메시지 텍스트의 첫 번째 매치가 메시지의 가시 범위 내에 있을 때 이를 강조하여 표시합니다(아래의 줄 수 조절 참조). 동일한 메시지의 후속 매치는 강조 표시되지 않습니다.

검색어 '애니메이션을 사용하여 검색하면 각 메시지의 첫 번째 매치(파란색)가 강조 표시되지만 후속 매치(빨간색)는 그렇지 않음
검색어 ’애니메이션’을 사용하여 검색하면 각 메시지의 첫 번째 매치(파란색)가 강조 표시되지만 후속 매치(빨간색)는 그렇지 않음

숫자, 특수 문자 등을 비롯하여 콘솔 메시지에 표시되는 모든 것을 검색할 수 있습니다. 예를 들어 메시지에 포함된 키워드가 아니라 메시지가 기록된 시간을 검색하고 싶을 때도 있습니다.

검색은 검색창에 입력된 검색어와 정확히 일치하는 매치를 찾습니다. 한 번에 두 개의 다른 검색어를 검색하거나 일반 검색 엔진 연산자를 사용할 수 없습니다.

또한 타입별로 콘솔 메시지를 필터링할 수도 있습니다. 검색창 옆에 있는 버튼을 클릭하여 토글하십시오.

버튼 메시지 타입
메시지
경고
오류

줄 수 조절

각 콘솔 항목의 최대 줄 수는 10줄입니다.

리스트에 표시되는 각 항목의 줄 수를 제어하려면 Console 메뉴 버튼을 클릭한 후 Log Entry > [X] Lines를 선택하십시오. 여기서 [X]는 각 항목에 대해 표시할 줄 수입니다.

로그 항목 줄 수
로그 항목 줄 수

줄 수가 많으면 각 항목당 더 많은 텍스트를 표시하지만, 한 번에 표시되는 항목 수가 줄어듭니다.

줄 수는 콘솔 검색 기능에는 영향을 주지 않습니다. 콘솔 검색 기능은 항상 전체 메시지 텍스트를 검색합니다. 일치하는 텍스트가 숨겨진 줄에 있으면 해당 메시지를 결과로 반환하지만 일치하는 텍스트를 노출하거나 강조 표시하기 위해 확장하지는 않습니다. 전체 메시지 텍스트는 상세 영역에서 볼 수 있으며, 일치하는 텍스트는 상세 영역에서 강조 표시되지 않습니다.

스택 추적 로깅

Unity에서 메시지를 콘솔이나 로그 파일로 출력할 때 상세한 스택 추적 정보를 포함할 수 있습니다. 이 옵션은 예를 들어, 오류 메시지가 명확하지 않을 때 유용합니다. 스택 추적을 통해 오류가 발생한 출처를 확인할 수 있습니다.

관리되는 스택 추적 vs. 관리되지 않는 스택 추적

콘솔은 관리되는 코드와 관리되지 않는 코드에 대한 스택 추적 정보를 제공할 수 있습니다.

  • 관리되는 코드는 Unity에서 실행 중인 C# 스크립트를 의미합니다. 여기에는 Unity와 함께 제공되는 스크립트, 개발자가 작성하는 커스텀 스크립트, 에셋 스토어 플러그인이 들어 있는 타사 스크립트, 엔진에서 실행되는 기타 C# 스크립트 타입이 포함됩니다.

    일부 경우 관리되는 코드에 액세스하고, 디버깅 작업을 위해 수정할 수 있습니다. 관리되는 스크립트가 관리되는 .dll로 컴파일되는 등의 다른 경우에는 관리되는 스택 추적 정보는 볼 수 있지만, 원본 소스 파일에 대한 액세스 권한이 없으면 관리되는 코드를 수정할 수 없습니다.

  • 관리되지 않는 코드는 네이티브 Unity 엔진 코드, 컴퓨터에서 직접 실행되는 네이티브 플러그인의 코드, 또는 타겟 빌드 플랫폼에 있는 코드입니다.

    관리되지 않는 코드는 대개 C 또는 C++ 코드에서 컴파일됩니다. 네이티브 바이너리의 원본 소스 코드가 없으면 액세스할 수 없습니다.

대개의 경우 관리되는 스택 추적만 C# 코드 디버그에 사용합니다. 하지만 전체 스택 추적이 유용한 경우도 있습니다.

예를 들어 관리되지 않는 스택 추적을 이용하면 오류의 원인이 코드에 있는지 엔진에 있는지 쉽게 확인할 수 있습니다. 또한 오류가 맨 처음 발생한 엔진 영역을 식별하는 데도 도움이 됩니다. 관리되는 스택 추적 정보를 이용할 수 없거나 오류 메시지의 설명이 부족할 때 특히 유용합니다.

참고: 스택 추적, 특히 전체 스택 추적을 확인하는 작업은 리소스를 많이 소모합니다. 디버깅 목적으로만 이 옵션을 사용하십시오.

스택 추적 타입 설정

스택 추적에 포함할 디테일 양을 지정하려면 Console 메뉴 버튼을 클릭한 후 메뉴에서 Stack Trace Logging > [MESSAGE TYPE]을 선택하십시오. 여기서 [MESSAGE TYPE]은 스택 추적 정보를 포함하고 싶은 메시지의 타입입니다. 그러고 나서 다음 옵션 중 하나를 선택하십시오.

스택 추적 로깅 옵션
스택 추적 로깅 옵션
  • None: Unity가 스택 추적 정보를 출력하지 않습니다.

  • ScriptOnly: Unity가 관리되는 코드에 대한 스택 추적 정보를 출력합니다.

  • Full: Unity가 관리되는 코드와 관리되지 않는 코드 모두 에 대한 스택 추적 정보를 출력합니다.

스크립팅 API를 통해 스택 추적 로깅을 제어할 수도 있습니다. 자세한 내용은 Application.SetStackTraceLogType에 대한 API 레퍼런스 문서를 참조하십시오.

스택 추적 출력에서 소스 파일 열기

메시지를 선택하고 콘솔 창 하단의 상세 영역에서 전체 텍스트를 볼 때 코드 파일의 특정 줄에 대한 스택 추적 참조가 클릭 가능한 링크로 변합니다. 링크를 클릭하면 참조된 줄의 IDE에 있는 파일을 엽니다.

콘솔에서 로그 파일 열기

콘솔 창 메뉴에서 로그 파일을 열 수 있습니다. Open Player Log 또는 Open Editor Log를 선택하십시오.

사용되지 않는 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는 더 이상 지원되지 않는 API 호출을 자동으로 추천 API 호출로 업그레이드하려고 시도합니다.


  • 2019–03–11 일부 편집 리뷰를 거쳐 페이지 수정됨

  • Unity 2017.3에서 로그 항목 줄 수 추가됨 NewIn20173

  • 2019.1에서 검색창 및 클릭 가능한 스택 추적 메시지 추가됨 NewIn20191

스크립팅 툴
로그 파일