Version: 2022.3
언어: 한국어
딥 링크
Android

Xcode 프레임 디버거 Unity 통합

Xcode 프레임 디버거 툴을 사용하면 애플리케이션의 프레임을 캡처하여 해당 프레임 동안 GPU가 수행한 커맨드를 보고, GPU 메모리의 데이터를 검사하고, 셰이더의 병목 현상을 식별할 수 있습니다 이렇게 하면 GPU 성능을 세부적으로 분석할 수 있습니다.

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

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

중요:

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

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

Xcode 프레임 디버거를 사용하여 프레임을 캡처하려면 다음 중 하나를 수행하십시오.

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

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

이 섹션에서는 Xcode UI 또는 FrameCapture API를 사용하여 애플리케이션을 실행하고 프레임 캡처를 수행하는 방법을 설명합니다. 이 워크플로는 Metal을 사용하는 모든 플랫폼에서 지원됩니다.

1. Xcode 프로젝트를 만듭니다.

Unity 에디터에서 Xcode 프로젝트를 생성하거나, 다른 Xcode 프로젝트를 사용하여 macOS 애플리케이션을 실행할 수 있습니다.

Unity 에디터에서 Xcode 프로젝트를 빌드하려면 다음 단계를 따르십시오.

  1. 빌드 설정 창(File > Build Settings)을 엽니다.
  2. macOS만 해당: Create Xcode Project를 활성화합니다.
  3. Build를 클릭합니다.

다른 Xcode 프로젝트를 사용하여 macOS 애플리케이션을 실행하려면 다음 단계를 따르십시오.

  1. Xcode에서 비어 있는 새 macOS 프로젝트를 생성하거나, 기존 macOS 프로젝트를 엽니다.
  2. Product > Scheme > Edit scheme에서 Info 탭을 엽니다.
  3. Executable을 빌드한 Unity 애플리케이션으로 설정합니다.

2. 프레임 캡처를 수행할 수 있도록 Xcode 프로젝트 체계를 편집합니다.

또는 Xcode GUI를 사용합니다. 이렇게 하려면 Xcode 문서의 프레임 캡처 활성화 가이드에 따라 프로젝트 체계의 GPU Frame Capture 설정을 Metal로 설정하십시오.

XcScheme API를 사용하여 자동화된 빌드에 유용한 Xcode 프로젝트 체계를 설정할 수도 있습니다. 자세한 내용은 XcScheme API 문서를 참조하십시오.

3. Xcode에서 프로젝트를 실행하고 프레임 캡처를 수행합니다.

Xcode에서 Frame Capture 버튼(카메라 아이콘)을 눌러 데이터의 다음 프레임을 캡처하십시오.

또는 FrameCapture API를 사용하여 스크립트에서 프레임 캡처를 수행할 수도 있습니다. Xcode에서 프레임 캡처 데이터를 분석하는 방법은 Xcode 프레임 디버거 문서를 참조하십시오.

커맨드 라인으로 애플리케이션에서 프레임 캡처

이 섹션에서는 커맨드 라인에서 애플리케이션을 실행하고, FrameCapture API를 사용하여 프레임 캡처를 수행하고, 결과를 디스크에 저장하는 방법을 설명합니다. 중요: 이 워크플로는 iOS에서 지원되지 않습니다. iOS에서 프레임 캡처를 수행하려면 항상 Xcode에서 애플리케이션을 실행해야 합니다.

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

Xcode에서 이러한 데이터를 분석하는 방법은 Apple의 Xcode 프레임 디버거 문서를 참조하십시오.

Unity 에디터에서 프레임 캡처

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

Xcode로 Unity 에디터에서 프레임 캡처

다음 단계에 따라 Xcode에서 Unity 에디터를 실행하고 Unity 에디터 UI, Xcode UI, FrameCapture API를 사용하여 프레임 캡처를 수행합니다.프레임 캡처를 즉시 분석하거나 결과를 디스크에 저장할 수 있습니다.이 워크플로는 macOS에서 지원됩니다.

선행 조건:Unity 에디터가 열려 있으면 닫습니다.

  1. Xcode에서 비어 있는 새 macOS 프로젝트를 생성하거나, 기존 macOS 프로젝트를 엽니다.
  2. Product > Scheme > Edit scheme으로 이동하고 Info 탭을 엽니다.
  3. Executable을 Unity 에디터로 설정합니다.
  4. Xcode 문서의 프레임 캡처 활성화 가이드에 따라 프로젝트 체계의 GPU Frame Capture 설정을 Metal로 설정합니다.
  5. 선택 사항 - Unity Hub가 설치된 경우:Xcode Scheme 설정 창의 Arguments 탭으로 이동하고 -projectPath를 사용하여 Unity 프로젝트의 경로를 인자로 전달합니다.이는 Xcode가 에디터를 실행할 때 Unity Hub가 열리지 않도록 하고 대신 프로젝트로 에디터를 직접 디버깅하기 위한 것입니다. 프로젝트 경로를 표시하는 FrameDebug 창
  6. Xcode 프로젝트를 실행하여 Unity 에디터를 시작합니다.
  7. 다음 방법 중 하나를 사용하여 프레임 캡처를 수행합니다.
    • Unity 에디터: 씬 뷰 또는 게임 뷰의 오른쪽에 있는 Xcode Capture 버튼을 사용하여 프레임 캡처를 수행합니다.
    • Xcode: Frame Capture 버튼(카메라 아이콘)을 선택하여 데이터의 다음 프레임을 캡처합니다.
    • 스크립트:FrameCapture API를 사용합니다.자세한 내용은 FrameCapture API 문서를 참조하십시오. Xcode에서의 프레임 캡처 데이터 분석에 대한 내용은 Apple의 Xcode 프레임 디버거 문서를 참조하십시오.

커맨드 라인으로 Unity 에디터에서 프레임 캡처

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

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

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

추가 리소스:

딥 링크
Android
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961