以前使ったMozilaのWebXRExporter
結局VRでうまく動かなかった。Unityのバージョン変えてもダメだった。
新unity-webxr-export
本家は開発ストップしていたらしい!そして別のリポジトリだと動くんだって~
UnityのWebXR Exporterは、本家はストップしてますが、@DePantherさんがUnity XR Plugin対応を目的にフォークし開発継続してたけどハンドトラッキングのバグfixやWebAR対応も実装、Mozilla元開発者も参加し始めており、事実上WebXR Exporter後継プロジェクトとなってます。https://t.co/qlHN6y3dc3 https://t.co/6cARVK7pQn
— gtk2k (@gtk2k) 2020年12月23日
こちら
公式サンプルはここ。QuestでちゃんとVR動いた!
Unity WebGL Player | Unity WebXR Export
ものもつかめる。Quest2のコントローラーなのすごい
ドキュメントはここ。ビルド設定が書いてある
https://github.com/De-Panther/unity-webxr-export/blob/master/Documentation/Getting-Started.md
環境
今回はUnity2019.4.14のビルドインでやる。
MozilaのはURPじゃないといけないといううわさがあったが、今回のはURPでやってたらサンプルシーンがピンクになった
Unity Editor version
2019.4.7 and up.
2020.1 and up.
インポート
WebXR ExportとWebXR Interactionsの二つのunitypackageがある。
UnityPackageManagerの+gitからurl入れてインポートできる
たぶん両方入れたほうが良い。カメラのプレハブがInteractionsのほうにしかなかった
https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr
https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr-interactions
Add押してからインポートが始まるまですごい時間かかる。しばらく何のリアクションもないけど、1分ぐらいしたらダウンロードが始まる。
エラーで入れれなかったときあったけど、Unity再起動したらいけた
詳しくはここに書いてある
unity-webxr-export/README.md at master · De-Panther/unity-webxr-export · GitHub
入れたものはAssets下じゃなくて、Packages下にあるよ
WebXR Exportを入れた後は、ProjectSettingsのXRPluginManagementでWebXRExportにチェックを入れる
あとWindow>WebXR>CopyWebGLTemplatesでWebGLテンプレートをインポート
サンプルとカメラ
InteractのほうはSampleSceneがImportできる
いつものシーン
ここで使われているWebXRCameraSetはPackagesの以下の場所か、
Samples以下にもある
このカメラを自分のシーンにも置く
ビルド
カメラ置いたらビルドする
インポートしたWebGLTemplateがある。2020はUnity2020の時に使うこと!!
Unity2019使ってるのに2020使ったら真っ白で何も表示されなかった
WebXRFullを選んでビルドしたら動いた!
GithubPagesでもちゃんと動いたよ
最初は激重だけど、だんだんスムーズになる気がする
公式サンプルでも最初は30fpsぐらいだけど、時間がたてば90fpsで普通に動いてたし
試してないけど右下のAR\VRでARにもなるのかな?
とにかくちゃんと動いて良かった!
(おまけ)エラー
無印Fullを選んでビルドしたらエラーが出て失敗した
Error: Cannot create FMOD::Sound instance for clip "Chirp Notification" (FMOD error: An error occured that wasn't supposed to. Contact support. )
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
こちらの記事ではEditorで再生できないだけで、ビルドデータでは動くって書いてるけどビルド失敗して生成されてない
原因は自分で書いてたコードがNullとか゚エラー起こしているせいっぽかった👧
Warningで出てるとこをつぶしたら不通にビルドできた。