Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Разработка платформы Шаг 6 из 387

Интеграция отладчика Xcode frame Unity

Xcodeсредство отладки кадров позволяет захватить кадр приложения, просмотреть команды, выполненные GPU в этом кадре, исследовать данные в памяти GPU и выявить узкие места в шейдерах. Это даёт возможность детально анализировать производительность GPU.

Unity интегрируется с отладчиком кадров Xcode следующим образом:

  • На macOS, iOS и tvOS, вы можете использовать Xcode Frame Debugger для анализа кадров из вашего приложения, пока оно работает на целевом устройстве.
  • На macOS вы можете использовать отладчик кадров Xcode для анализа кадров из Unity Editor.

Важно:

  • Отладка кадров работает только в том случае, если приложение работает на платформе и графике API, поддерживаемых Xcode.
  • Xcode поддерживает только macOS с Metal графикой.
  • Если Unity использует другой API, интеграция Xcode отключена, пока вы не выберете поддерживаемую графику API.

Захват кадра из приложения

Чтобы использовать отладчик кадров Xcode для записи кадра из файла, выполните одно из следующих действий:

  • Запустите приложение из Xcode и либо используйте Xcode UI, либо FrameCapture API для запроса кадровых записей. Вы можете немедленно проанализировать кадровые записи в Xcode или сохранить их на диск. Этот рабочий процесс поддерживается на всех платформах, использующих Metal.
  • Запустите приложение непосредственно из командной строки без проекта Xcode и используйте FrameCapture API для сохранения кадров на диск. Примечание: iOS не поддерживает этот рабочий процесс.

Захват кадра из приложения с помощью Xcode

В этом разделе описывается, как запустить приложение и выполнить захват кадра с помощью Xcode UI или FrameCapture API. Этот рабочий процесс поддерживается на всех платформах, использующих Metal.

1. Создать проект Xcode.

Вы можете либо создать проект Xcode из Unity Editor, либо использовать любой другой проект Xcode для запуска приложений macOS.

Чтобы создать проект Xcode из Unity Editor:

  1. Откройте Создание профилей окно (Файл > Создать профили).
  2. Только macOS: Включить Создать Xcode Project.
  3. Нажмите кнопку Создать.

Чтобы использовать другой проект Xcode для запуска приложений macOS:

  1. В Xcode создайте новый пустой проект macOS или откройте существующий проект macOS.
  2. Перейдите в раздел Продукт > Схема > Изменить схему и откройте вкладку Информация.
  3. Установите Исполняемый файл в ваше встроенное приложение Unity.

2. Измените схему проекта Xcode, чтобы вы могли выполнять захват кадров.

Используйте Xcode GUI. Для этого следуйте инструкциям Руководство по включению захватов кадров в документации Xcode, чтобы установить схему проекта GPU Захват кадра установка на Metal.

Вы также можете использовать XcScheme API для настройки схемы проекта Xcode, которая полезна для автоматических сборок. Дополнительные сведения см. в документации XcScheme API.

3. Запустите проект из Xcode и выполните захват кадра.

В Xcode нажмите кнопку Frame Capture (иконка камеры), чтобы захватить следующий кадр данных.

Вы также можете использовать FrameCapture API для выполнения захвата кадра из скрипта. Информацию об анализе данных захвата кадра в Xcode см. в Документация по отладчику кадров Xcode.

Захват кадра из приложения с помощью командной строки

В этом разделе описывается, как запустить приложение из командной строки, выполнить захват кадра с помощью FrameCapture API и сохранить результаты на диск. Важно: Этот рабочий процесс не поддерживается на iOS. Чтобы выполнить захват кадра на iOS, всегда запускайте приложение из Xcode.

  1. Добавьте вызов FrameCapture.BeginCaptureToFile и EndCapture в свой код, чтобы вы могли выполнять захват кадров по мере необходимости.
  2. Запустите приложение из командной строки со следующим флагом: -enable-metal-capture. Xcode выполняет захват кадров, когда ваш код их требует, и сохраняет результаты на диск.

Информацию о том, как анализировать эти данные в Xcode, см. в документации Apple Xcode frame debugger.

Захват кадра из Unity Editor

На macOS вы можете использовать отладчик Xcode для анализа кадров из Unity Editor. Если вы используете Xcode для запуска Unity Editor, вы можете запросить захват кадров из Unity Editor UI.

Захват кадра из Unity Editor с помощью Xcode

Выполните следующие действия, чтобы запустить Unity Editor из Xcode и выполнить захват кадра с помощью Unity Editor UI, Xcode UI или FrameCapture API.. Вы можете немедленно проанализировать захват кадра или сохранить результаты на диск. Этот рабочий процесс поддерживается на macOS.

Пререквизит: Если Unity Editor открыт, закройте его.

  1. В Xcode создайте новый пустой проект macOS или откройте существующий проект macOS.
  2. Перейдите в Продукт > Схема > Изменить схемуи откройте вкладку Информация.
  3. Установите Исполняемый файл на Unity Editor.
  4. Следуйте инструкции Enable Frame Capture в документации Xcode, чтобы установить настройку GPU Frame Capture схемы проекта на Metal.
  5. Необязательно — Если у вас установлен Unity Hub: Перейдите на вкладку Аргументы в окне настроек схемы Xcode и передайте путь к вашему проекту Unity в качестве аргумента с помощью -projectPath. Это для того, чтобы Unity Hub не открывался, когда Xcode запускает Редактор, и вместо этого непосредственно отлаживал Редактор с вашим проектом. Окно FrameDebug, отображающее путь к проекту
  6. Запустите проект Xcode для запуска Unity Editor.
  7. Выполните захват кадра с помощью одного из следующих методов:
    • Unity Editor: Используйте кнопку Xcode Capture справа от представления Scene или Game, чтобы выполнить захват кадра.
    • Xcode: Выберите кнопку Frame Capture (иконка камеры) для записи следующего кадра данных.
    • Скрипт: Используйте FrameCapture API. Дополнительную информацию см. в документации FrameCapture API. Информацию об анализе данных захвата кадров в Xcode см. в документации отладчика кадров Apple Xcode.

Захват кадра из Unity Editor с помощью командной строки

Этот рабочий процесс описывает, как запустить Unity Editor из командной строки, использовать FrameCapture API для выполнения захвата кадра и сохранить захват кадра на диск. Этот рабочий процесс поддерживается на macOS.

  1. Добавьте вызов FrameCapture.BeginCaptureToFile и EndCapture в свой код, чтобы вы могли выполнять захват кадров по мере необходимости.
  2. Запустите Unity Editor из командной строки, со следующим флагом: -enable-metal-capture. Xcode выполняет захват кадров, когда ваш код их требует, и сохраняет результаты на диск.

Для получения информации о том, как анализировать эти данные в Xcode, см. Документация по отладчику кадров Xcode.

Дополнительные ресурсы: