【VR,OculusGo,Unity】素人が目線にポインターを出すやり方を実践
次はリモコンから線を出せるようにする。
結果的にポインターがでた。
目線にポインターを出す
まずは情報収集。
情報収集
読んだ記事
- Oculus Go開発【コントローラー表示、クリック反応、移動、ポインタ、uGUI】 - トマシープが学ぶ
- 【Unity】VRレーザーポインター(ビーム)を作る - ヽ|∵|ゝ(Fantom) の 開発blog?
- Oculus Go 開発メモ - uGUI編
一番シンプルでわかりやすかった3番目の記事を参考にして一つサンプルを作ってみることにする。
実践
環境
- macOS
- Unity Ver 2018.1.9.f1
1.Oculus Integration をインポートする
VRの部分だけInportした。なんかAudioのエラーが出るが、Buildが早くなるので、サンプルはとりあえずこれで行く。
2.UIシーンにあるOVRGazePointerをPrefabにしておく。
おけい。
3.新しいSceneを作成する
丁寧!
4.OVRCameraRigを準備する
ほい。
MainCamera削除。
5.uGUIの構成 - Canvas
CanvasのRender ModeをWorld Spaceにし、CenterEyeAnchor入れる。
CanvasからGraphic Raycasterを削除。
Canvasに新たにOVR Raycasterを追加。
Canvasに新たにOVR Raycasterを追加。が出来なかった。
忘れてた。これらのエラーのせいだ。
この前にandroidにSwitchPlatformしておいたほうがいいかもしれない。
(自分はあとでやった)
Oculus Utilities for Unity | Developer Center | Oculus
ここから『OculusUtilities.unitypackage』をダウンロードして、ダブルクリック。
出てきたものを全てImportしてYes,Yes押したらエラーが消える。
無事、 Canvasに新たにOVR Raycasterのスクリプトを追加することができた。
6.EventSystem
EventSystemからStandalone Input Moduleを削除
新たにOculus/VR/Scripts/UtilにあるOVRInputModuleを追加
OVR Input ModuleのRay Transform欄にCenterEyeAnchorを追加
丁寧!
7.OVRGazePointer
2-2で作成しておいたOVRGazePointerのプレハブを、Scene上にドラッグ&ドロップして実体化
なお、OVRGazePointerが無いとGUIの操作が出来ません。
らしい。ということはポインター自体は出るのかな?
うーん。出なかった。
8.好きにUI部品をCanvasに並べる
Canvasにbutton入れて、CanvasのZを200くらい変えたらいい感じにbuttonが表示された。
9.Build
OculusGoで確認してみた。
ポインターってポインターだった。今回線を出そうと思っていたが、『目線での選択』だった。
それはさておき、ポインターを合わせてリモコンで何らかのアクションをすると無事色が変わった。
なんの動作でも色が変わった。人差し指でも、スワイプでもタッチパッドタップでも。
ポインターは3Dオブジェクトの床では出てこなかった。GUIに重なったら出てくる仕様?
完成形
感想
参考記事がめちゃくちゃ丁寧だったおかげでスムーズにできた。ただ、実装できたけど、仕組みがよくわかっていない。
次こそはレーザーポインターをだす。最初に調べた4番目の記事を参考にレーザーポインターを出せるようにしよう。