Unity
VR
WinMR

Windows Mixed Reality (WinMR)で SceneLauncher prefab を使ってシーンの移動をする。

内容

WinMR Immersive device 向けにUnityでSceneを作って自作の世界に入ると感動的に楽しいです。
MRTKのExampleを再現できるようになると、当然、一つのProjectの中でいろいろなSceneに飛びたくなります。そのやり方を記します。

手順

MRTKのExampleでサンプルシーンをいろいろ見てると、「SceneLauncher」なる、それっぽいシーンがあり、SceneLauncher prefab に Scene Launcher (Script)が付いています。

unity1edit.jpg

しかし、開いてみると英語の文章があるだけ。
unity2.jpg

Air tap a scene to load it.
When finished with a scene, say "Scene Launcher" or press the Backspace key to return the this scene list.
Edit the scenes in this list in Unity > File > Build Settings > Scenes in Build.
If you would like to use all scenes in the project, search for t:Scene in the Project tab, select all, and drag all scenes into Scenes in Build.

After adding scenes to the build, you can use the Scene Mapping setting in the SceneLauncher prefab to control which scenes are included or notincluded in the SceneLauncher menu.

・・・とのこと。とりあえずこれに従い、使いたいSceneをBuildに追加する。(え?これドラッグできたんだ。)
unity3edit.jpg

(ってか、検索でシーン一覧とか出せんのか。t:ってタグを検索してるのかな?)
unity4edit.jpg

ここでBuildすると、VR空間でさっきの英語文の下に、「SceneLauncher」というテキストが追加された。他のSceneは表示されていない。
record_20180207_233406_Moment.jpg

Sceneの追加は Scene Mapping から行う。BuildにSceneを追加すると、いつの間にかScene Mappingが出現している。ここにチェックが入ってなかったので入れる。
unity5edit.jpg

VR空間でSceneを選択すると紫の世界になる。 よく見るとポインタだけは立体的に動いていて、オブジェクトは存在してそう。
record_20180207_233406_Moment2.jpg

この紫世界問題は、Scene移動時にカメラを引き継いでいて、移動先のSceneでカメラが複数になっていることが原因っぽい。移動先のカメラを削除すれば問題解消する。インポートしたPackageはそのまま残しておきたいので、改めて以下のSceneを作り、Exampleから中身をコピペして、移動先Sceneのカメラを削除する。
・Launcher →カメラ残す
・InteractableObject →カメラ削除
・ObjectCollection →カメラ削除

unity10.jpg

読み込み順番があるので、Launcherを一番上にしてBuildする。
unity11.jpg

これでランチャーから別のSceneに移動できました。


残る課題

・カメラ残したSceneLauncherを選択すると、相変わらず紫世界になる。(カメラ有Sceneからカメラ有Sceneに移動するとNG)
・移動先にもSceneLauncher prefab を設置してみたが表示されない。
・移動先のSceneからLauncherに戻る方法が不明。
・いちいちBuildしないと動作確認できないのでしんどい。(簡単なSceneでも3分くらいかかる)

・・・というわけで実用化にはまだ遠く、デバックが続きます:sob: