Unlit Sphere

Let’s discover a new world with Unity

【Unity】MirageSoloアプリ開発をはじめる2019edition - 6dof対応とコントローラー表示

Overview

最近のGoogle VR SDKを用いてMirageSoloのアプリ開発を行うやりかたとかです.

現在はなにもないところからコントローラーの表示と6dofに対応させる部分まで書いてあります.

Environment

Windows10 64bit

Unity2018.2.14f1

Google VR SDK - GVR SDK for Unity v1.190.1 (2019-01-16)

Lenovo Mirage Solo - Android 8.0.0

Method

0. 環境構築

UnityでAndroidアプリ開発を行えるレベルの環境構築は行っておく.

1. Google VR SDKのインポート

Google VR SDK - GVR SDK for UnityをGitHubのReleaseからDLしてきてインポートします.

配布はunitypackageで行われてます.

https://github.com/googlevr/gvr-unity-sdk/releases

2. 新規シーンを開く

新規シーンを開き,初めからあるMainCameraとDirectionalLightを削除する.

3. SDKからPrefabのインスタンスを作る

・GvrEventSystem (Assets/GoogleVR/Prefabs/EventSystem/GvrEventSystem.prefab)

・GvrHeadet (Assets/GoogleVR/Prefabs/Headset/GvrHeadset.prefab)

・GvrControllerMain (Assets/GoogleVR/Prefabs/Controller/GvrControllerMain.prefab)

f:id:nagatsukimxi:20190303123130p:plain

4. Create EmptyGameObject and MainCamera

Playerという名の空のゲームオブジェクトを作成し,中にMainCameraを作成する.

MainCameraにはGvrPointerPhysicsRaycasterコンポーネントを追加する.

GvrPointerGraphicRaycasterではないので注意.

MainCameraコンポーネントのClipping PlanesのNearの値を0.01に設定する.これをしないと近いものが描画されない,つまりコントローラーが見えん.

また適当にPlayerオブジェクトのtransform.position.yを1.6などに設定する.身長分(m).

5. 各GameObject内にPrefabのインスタンスを作る

MainCameraの子に GvrReticlePointer (Assets/GoogleVR/Prefabs/Cardboad/GvrReticlePointer.prefab)

を作成する.これを使うとレティクル(見ている方向の中央点)が表示されるが,必要ない場合は無効化,または追加しなくて良い.

Playerオブジェクトの子には

GvrControllerPointer (Assets/GoogleVR/Prefabs/Controller/GvrControllerPointer.prefab)

インスタンスを作る.

最終的にこの時点ではこうなる.

f:id:nagatsukimxi:20190303123145p:plain

この時点で6dofに対応し,コントローラーの表示ができているはず.