2023年6月30日金曜日

Unityで作成したiOSアプリをvisioOS Simulatorで動かしてみた。

お疲れ様です。ZuQ9->Nnです。
WWDC2023で発表された、注目の新デバイス Apple Vision Proの開発環境が提供されました。
Apple Vision Proの開発環境は、Xcode、SwiftUI、RealityKit、ARKitの他、Unityがアナウンスされています。

Unity関連情報では、Bring your Unity VR app to a fully immersive spaceおよび Create immersive Unity appsという動画が公開されています。
この動画をチェックしてみたのですが、結局、具体的なUnityでのApple Vision Proのアプリ開発が理解できませんでした。。
このブログ記事を書いている2023年6月30日の現時点では、 結局のところUnityを用いたApple Vision Pro、visionOSアプリの開発は具体的な方法が無いようです。
この理解が間違っているなら、ご指摘して頂きたいです。

しかし、Apple Vision Pro、visionOSでは、iOSのアプリがそのまま動くのハズなので、
ひょっとしたら、UnityでiOSのSimulator向けに出力すればvisioOS Simulatorでもそのまま動くのでは?と思い試してみました。
今回の開発環境は下記です。
  • Unity 2022.3.3f1(Apple Silicon)
  • Xcode 15.0 bata2(15A516b)
  • macOS Ventura 13.4.1
  • ハードウェアは、M2 MacBook Air

今回は、アプリが起動することが確認できれば良いので、とりあえず、Cubeをひとつ表示するアプリを作成します。
これは、必須では無いのですが、プロジェクトを開くときに、UnityでiOSを選択しておけば、Swithc Platformを行う手間が省けて便利です。

Unityが起動したら、Hierarchyから、+ > 3D Object > Cubeを選択して、Cubeを配置
Cubeの配置が終わったら、Unityのメニューバー Edit > Project SettingsでProject Settingsを開き、iOSのタブを選択
Playerから Other SettingsのTarget SDKをSimulator SDKに変更
最後に、Unityのメニューバー File > Build SettingsでBuild Settingsを選択、Add Open ScenesでScenes/SampleSceneを追加
PlatformがiOSになっているのを確認後、Run in Xcdoe を v15.0 / Applications / Xcode-beta.appを選択、
Build And Runボタンを押下する
アプリの保存のダイアログが開き、New Folderで新規フォルダ作成してChooseボタンを押せば、Xcode15.0 bataが自動で起動します。これで、Unity側の作業は終了。

Xcodeがひらいたら、左のNavigationよりUnity-iPhoneを選択、TARGETSのUnity-iPhoneを選択、Build Settingsのタブ、All、Levelsを選択後、Base SDKのUnity-iPhoneをvisionOSに変更
つづいて、TARGETSのUnityFrameworkを選択、Base SDKのUnityFrameworkをvisionOSに変更
次に、XcodeのメニューバーからProduct > Destioation > Destinations Archtectures > Show Bothを選択
(これは、僕のMacがApple Siliconだったから必要だった、Intel Macの人は必要ないかも)
ふたたび、TARGETSからUnity-iPhoneを選択、GeleralのSupproted Destinationsの + を押して、 Apple Vision > Apple VisionでvisionOS Simulatorを追加
追加されたvisionOS SImulatorを選択
Xcodeのメニュー、Debug > Attach to Process by PID or Nameを選択、出現したダイアログにProductNameを入れて、Attachボタンを押すとvisionOS Simulatorが起動します。
アプリは自動起動しないので、visionOS Simulatorのアプリのアイコンをクリックします。起動は、こんな感じです。

いかがだったでしょうか?
個人的には、iOSアプリが、そのまま動くのは、予想以上にインバクトが強かったです。
すでにアプリをStoreにリリースしている人は、その時点でかなりのアドバンテージがあると言えますね。
今回の検証は、visionOSに正式に対応したUnityがリリースされれば、意味なくなるようには思えたのですが、なんとなく気になったので。。
くれぐれも、UnityでvisionOS用のアプリを作成した訳では無い点を勘違いしないでください。