На этой странице описывается, как интегрировать библиотеку времени выполнения Unity в Windows и универсальную платформу Windowsфункцию IAP, которая поддерживает In App от Microsoft. Симулятор покупки, который позволяет тестировать потоки покупок IAP на устройствах перед публикацией приложения. Дополнительная информация
См. в приложениях Словарь (UWP), использующих Unity как функцию библиотеки.
Эту функцию можно использовать для включения функций Unity, таких как 3D/2D-рендеринг в реальном времени, ARAugmented Reality (AR) использует компьютерную графику или видео, наложенное поверх прямой видеотрансляции, чтобы дополнить представление и создать взаимодействие с реальными и виртуальными объектами.
См. в Словарь Опыт взаимодействия с 3D-моделями или 2D-мини-игры в ваше приложение. Библиотека среды выполнения Unity предоставляет элементы управления для управления тем, когда и как загружать, активировать и выгружать содержимое в приложении.
Как это работает в UWP
Тип вывода проекта UWP XAML упрощает создание проекта UWP, включающего Unity. Сгенерированный проект Visual Studio — это общий проект XAML UWP с настройкой SwapChainPanel для загрузки проекта Unity. Вы можете расширить или заменить этот проект любой другой бизнес-логикой приложения, отличного от Unity.
При использовании SwapchainPanel может потребоваться отрисовка поверх других элементов. Это позволяет отображать небольшой объект с прозрачным фоном поверх другого содержимого приложения, отличного от Unity. Для этого включите параметр PlayerSettings.WSA-transparentSwapchain
.
Вы можете выгрузить движок Unity, чтобы восстановить ресурсы, когда Unity загружается в процессе с помощью Application.Unload
.
Как это работает в Windows
В Windows вы можете встроить Unity в свое приложение двумя разными способами.
Самый простой вариант — запустить Unity как внешний процесс из вашего приложения и указать окно, в котором Unity будет инициализироваться и отображаться с помощью -parentHWND
аргумент командной строки.
Второй вариант — внедрить Unity в существующий процесс. Для этого встройте Unity в файл UnityPlayer.dll
, который может быть загружен непосредственно любым приложением Win32. Подпись точки входа:
extern "C" UNITY_API int UnityMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd);
Вы можете использовать lpCmdLine
для передачи любых аргументов командной строки в Unity для управления разрешением, потоками заданий, родительским HWND и т. д. Это позволяет запускать Unity в рамках вашего процесса. Когда Unity не отображается, вы можете использовать Application.Unload
, чтобы вернуть используемые ресурсы.
Ограничения
При размещении в другом приложении Unity не контролирует жизненный цикл среды выполнения, поэтому может работать не во всех сценариях. Известные ограничения включают:
- Вы не можете загрузить более одного экземпляра среды выполнения Unity или интегрировать более одной среды выполнения Unity.
- Возможно, вам потребуется адаптировать собственный и управляемый плагиныНабор кода, созданного вне Unity, который создает функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. Словарь для правильной работы.
- Unity как библиотека добавлена в 2019.3