ぼくの息抜き

ぼくの息抜き

気ままな二人が記事を書くことで息抜きしていくブログ

CSS MenuMaker

【VR,OculusGo,Unity】素人がレーザーポインターを出すやり方を実践 Part2 完成!

f:id:bokunoikinuki:20180902094958p:plain


 

Part2参考記事のscriptをみつけられなかったため、他の記事を参考にすることにした。

レーザーポインターを出そう!Part2

レーザーポインターを出す

情報収集

【VR,OculusGo,Unity】素人が目線にポインターを出すやり方を実践 - ぼくの息抜き

この記事の時に調べたこちらの記事を参考に1から作ってみる。

実践

環境

  • macOS
  • Unity Ver 2018.1.9.f1

参考記事

【Unity】VRレーザーポインター(ビーム)を作る - ヽ|∵|ゝ(Fantom) の 開発blog?

1.unitypackageをインポート

GearVRLaserPointerTest.zip - Google ドライブ

上記のURLからダウンロードして、Unityで新規のプロジェクト作って、ダブルクリックインポート。

Assets > _GearVRLaserPointerTest > Scenes > GearVrControllerTest_LaserPointer

を開くとこんな感じ。

このままBuildしてもLaserPointerらしきものはあっても動かなかった。

2.空のObjectにLineRenderer

空の GameObject にアタッチし、LineRenderer を追加する(線の幅[Width:0.005くらい]やマテリアル・色も設定する)。

これはPart1でもやった。

めちゃくちゃわかりやすい画像が参考記事にある。引用させて頂いて、少し編集した。

f:id:bokunoikinuki:20180902102645p:plain

出典はこちら

3.LaserPointer Scriptを追加

2で作った空のオブジェクトに

Assets > _GearVRLaserPointerTest > Scripts > LaserPointer

を追加する。

Anchor にポインターを発するものを入れる。

LineRendererには2で作ったからのオブジェクトを入れる。

これでいけるらしいのだが、Buildしてもうまくいかなかった。

4.『Oculus Integration』をインポート

AssetStoreから『Oculus Integration』のVRフォルダだけインポートした。

そして『OculusUtilities.unitypackage』でアップデート。

 

既存の『GearVrControllerTest_LaserPointer』Sceneの『OVRCameraRig LaserPointer』を削除し、『Oculus Integration』の

Assets > Oculus > VR > Prefabs > OVRCameraRig

を追加する。

LeftHandAnchorとRightHandAnchorにはTrackedRemoteを追加。コントローラーが表示される。

そして、もう一度2で作ったオブジェクトにRightHandAnchor追加。

 

再ビルド。

できた!!

f:id:bokunoikinuki:20180902105141g:plain

6.おまけ LaserPointerの先にPointerを表示する

f:id:bokunoikinuki:20180902122127g:plain

Pointerの先に小さいSphereを配置して選択場所をわかりやすくした。

参考記事のLaserPointerのscriptに『hit.point』というRayCastとObjectの衝突座標がVecter3で取得できるようで、そのVector3の場所に小さいSphereを出現させて実装した。

ただ、そのままSphereを表示するとRayCastとぶつかってだんだん近づいてきてしまう。

f:id:bokunoikinuki:20180902122846g:plain

これはこれで面白いのだが、Laser PointerScriptにRayExclusionLayersというLayerGroupでRayが衝突判定しないようにできる。

f:id:bokunoikinuki:20180902122508p:plain

実際使うかはわからないが、理屈はわかったので良しとしよう。

自分の知識だとこのSphereとObjectでのOnTriggerなどで接触判定をしてボタンなどの操作を適応させることができる。

追記

レーザーポインターを1からシンプルに出すやり方を丁寧に解説している記事を見つけたので、貼っておく。

めちゃくちゃわかりやすい&丁寧。