yotiky Tech Blog

とあるエンジニアの備忘録

Unity - UnityをUWPでホストする(Unity as a Library)

Unity 2019.3以降、「Unity as a Library」というAndroidiOSのネイティブアプリに、Unityで作成したアプリをライブラリとして埋め込む機能が提供されています。

この中にはWindowsアプリケーションも含まれています。Windows では以下の3つの方法が紹介されています。

  • UWP
  • Unityを外部プロセスとして起動する
  • Unityをdllとしてビルドし、直接ロードする

unity.com

今回はこの中からUWPでの流れを紹介します。

docs.unity3d.com

手順

  1. Unity で UWP 向けのアプリを作る

  2. [Build Type] を [XAML Project] を指定してビルドする f:id:yotiky:20200806195043p:plain

  3. 生成されたソリューションを開く

  4. C++XAMLアプリを編集する f:id:yotiky:20200806195133p:plain Unity が生成した UWP アプリは、SwapChainPanel と呼ばれる DirectXレンダリングしたコンテンツを XAML に埋め込めるコントロールが使用されています。

  5. 実行する f:id:yotiky:20200806195150g:plain

Unity 2019 から、.NET スクリプティングバックエンドは削除されており IL2CPP のみ利用できるようになりました。つまり、ビルド結果は C++ であり、UWPアプリも C++ でしか編集できません。 また、Unity が出力したソリューションに手を加えることになるので、バージョン管理など一工夫しないといけない雰囲気が漂っています。