Version: 2020.3
RenderDoc 통합
에디터 애널리틱스

Xcode 프레임 디버거 사용

Xcode에는 애플리케이션의 프레임을 캡처하고, 해당 프레임 동안 GPU가 실행하는 커맨드를 확인하고, GPU 메모리의 데이터를 검사하고, 셰이더의 병목 현상을 해결하기 위한 프레임 디버거 툴이 포함되어 있습니다. 이 툴을 사용하여 GPU 성능을 분석할 수 있습니다.

Xcode에서 캡처된 프레임
Xcode에서 캡처된 프레임

Unity는 다음 방식으로 Xcode 프레임 디버거와 통합합니다.

  • macOS, iOS 및 tvOS에서 Xcode 프레임 디버거를 사용하면 타겟 디바이스에서 실행되는 동안 애플리케이션에서 프레임을 분석할 수 있습니다.
  • macOS에서 Xcode 프레임 디버거를 사용하면 Unity 에디터에서 프레임을 분석할 수 있습니다.

프레임 디버깅은 애플리케이션이 Xcode가 지원하는 플랫폼과 그래픽스 API에서 실행 중인 경우에만 작동합니다. Unity 2019.2부터 Xcode는 Metal 그래픽스를 탑재한 macOS만 지원합니다. Unity가 다른 API를 사용하는 경우 Xcode 통합은 지원되는 그래픽스 API를 선택할 때까지 비활성화됩니다.

애플리케이션에서 프레임 캡처

Xcode 프레임 디버거를 사용하여 애플리케이션에서 프레임을 캡처하기 위해 다음 중 하나를 수행할 수 있습니다.

  • Xcode에서 애플리케이션을 실행하고 Xcode UI 또는 FrameCapture API를 사용하여 프레임 캡처를 요청합니다. Xcode에서 프레임 캡처를 즉시 분석하거나, 디스크에 저장할 수 있습니다. 이 워크플로는 Metal을 사용하는 모든 플랫폼에서 지원됩니다.
  • Xcode 프로젝트가 없어도 커맨드 라인에서 직접 애플리케이션을 실행하고 FrameCapture API를 사용하여 프레임 캡처를 디스크에 저장합니다. 이 워크플로는 iOS에서 지원되지 않습니다.

Xcode를 사용하여 애플리케이션에서 프레임 캡처

이 섹션에서는 Xcode UI 또는 FrameCapture API를 사용하여 애플리케이션을 시작하고 프레임 캡처를 수행하는 방법을 설명합니다.

이 워크플로는 Metal을 사용하는 모든 플랫폼에서 지원됩니다.

  1. Xcode 프로젝트를 생성합니다.
    1. 이를 위한 가장 쉬운 방법은 Unity 에디터에서 다음 단계에 따라 Xcode 프로젝트를 빌드하는 것입니다.
      1. 빌드 설정 창(File > Build Settings)을 엽니다.
      2. macOS에만 해당: Create Xcode Project를 활성화합니다.
      3. Build를 클릭합니다.
    2. 또는 다른 Xcode 프로젝트를 사용하여 macOS 애플리케이션을 실행할 수 있습니다. 이렇게 하려면 다음을 수행하십시오.
      1. Xcode에서 비어 있는 새로운 macOS 프로젝트를 생성하거나 기존 macOS 프로젝트를 엽니다.
      2. Product > Scheme > Edit scheme으로 이동한 후 Info 탭을 엽니다.
      3. Executable을 빌드한 Unity 애플리케이션으로 설정합니다.
  2. 프레임 캡처를 수행할 수 있도록 Xcode 프로젝트 체계를 편집합니다.
    1. 이를 위한 가장 쉬운 방법은 다음 단계에 따라 Xcode GUI를 사용하는 것입니다.
      1. Xcode 문서의 프레임 캡처 활성화 가이드에 따라 프로젝트 체계의 GPU Frame Capture 설정을 Metal로 설정합니다.
    2. XcScheme API를 사용하여 Xcode 프로젝트 체계를 설정할 수도 있습니다. 이는 자동화된 빌드에 유용합니다. 자세한 내용은 XcScheme API 문서를 참조하십시오.
  3. Xcode에서 프로젝트를 실행합니다.
  4. 적절한 시점에 프레임 캡처를 수행합니다.
    1. 이를 위한 가장 쉬운 방법은 다음 단계에 따라 Xcode UI를 사용하는 것입니다.
      1. Xcode에서 Frame Capture 버튼(카메라 아이콘)을 눌러 다음 데이터 프레임을 캡처합니다.
    2. FrameCapture API를 사용하여 스크립트에서 프레임 캡처를 수행할 수도 있습니다. 자세한 내용은 FrameCapture API 문서를 참조하십시오.

Xcode에서 프레임 캡처 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.

커맨드 라인을 사용하여 애플리케이션에서 프레임 캡처

이 섹션에서는 커맨드 라인에서 애플리케이션을 실행하고 FrameCapture API를 사용하여 프레임 캡처를 수행하고 그 결과를 디스크에 저장하는 방법을 설명합니다.

이 워크플로는 iOS에서 지원되지 않습니다. iOS에서 프레임 캡처를 수행하려면 항상 Xcode에서 애플리케이션을 실행해야 합니다.

  1. 필요에 따라 프레임 캡처를 수행할 수 있도록 FrameCapture.BeginCaptureToFileEndCapture 호출을 코드에 추가합니다.
  2. 커맨드 라인에서 -enable-metal-capture 플래그를 사용하여 커맨드 라인에서 애플리케이션을 실행합니다. Xcode는 코드가 요청하면 프레임 캡처를 수행하고 그 결과를 디스크에 저장합니다.

Xcode에서 이 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.

Unity 에디터에서 프레임 캡처

macOS에서 Xcode 프레임 디버거를 사용하면 Unity 에디터에서 프레임을 분석할 수 있습니다. Xcode를 사용하여 Unity 에디터를 실행하면 Unity 에디터 UI에서 프레임 캡처를 요청할 수 있습니다.

Xcode를 사용하여 Unity 에디터에서 프레임 캡처

이 섹션에서는 Xcode에서 Unity 에디터를 실행하고 Unity 에디터 UI, Xcode UI 또는 FrameCapture API를 사용하여 프레임 캡처를 수행하는 방법을 설명합니다. 프레임 캡처를 즉시 분석하거나, 그 결과를 디스크에 저장할 수 있습니다.

이 워크플로는 macOS에서 지원됩니다.

  1. Unity 에디터가 열려 있으면 닫습니다.
  2. Xcode에서 비어 있는 새로운 macOS 프로젝트를 생성하거나 기존 macOS 프로젝트를 엽니다.
  3. Product > Scheme > Edit scheme으로 이동한 후 Info 탭을 엽니다.
  4. Executable을 Unity 에디터로 설정합니다.
  5. Xcode 문서의 프레임 캡처 활성화 가이드에 따라 프로젝트 체계의 GPU Frame Capture 설정을 Metal로 설정합니다.
  6. Xcode 프로젝트를 실행하여 Unity 에디터를 시작합니다.
  7. 적절한 시점에 프레임 캡처를 수행합니다.
    1. 이를 위한 가장 쉬운 방법은 다음 단계에 따라 Unity 에디터 UI를 사용하는 것입니다.
      1. Unity 에디터에서 씬 뷰 또는 게임 뷰의 오른쪽에 있는 Xcode Capture 버튼을 사용하여 프레임 캡처를 수행합니다.
    2. 또는 다음 단계에 따라 Xcode UI를 사용할 수도 있습니다.
      1. Xcode에서 Frame Capture 버튼(카메라 아이콘)을 눌러 다음 데이터 프레임을 캡처합니다.
    3. FrameCapture API를 사용하여 스크립트에서 프레임 캡처를 수행할 수도 있습니다. 자세한 내용은 FrameCapture API 문서를 참조하십시오.

Xcode에서 프레임 캡처 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.

커맨드 라인을 사용하여 Unity 에디터에서 프레임 캡처

이 워크플로에서는 커맨드 라인에서 Unity 에디터를 실행하고 FrameCapture API를 사용하여 프레임 캡처를 수행하고 해당 프레임 캡처를 디스크에 저장하는 방법을 설명합니다.

이 워크플로는 macOS에서 지원됩니다.

  1. 필요에 따라 프레임 캡처를 수행할 수 있도록 FrameCapture.BeginCaptureToFileEndCapture 호출을 코드에 추가합니다.
  2. -enable-metal-capture 플래그를 사용하여 커맨드 라인에서 Unity 에디터를 실행합니다. Xcode는 코드가 요청하면 프레임 캡처를 수행하고 그 결과를 디스크에 저장합니다.

Xcode에서 이 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.

RenderDoc 통합
에디터 애널리틱스