Unity
GearVR

Unity5でGearVR シューティングゲームが作りたくて

More than 1 year has passed since last update.

GearVR開発を始めました。

VRシューティングゲームが作りたくて、
モックアップとして、
「注視点のポインターが飛んでくるバナナが重なった時爆発する」
というのを制作しました。

注視点のポインターとGameObjectが重なった時の処理のメモです。
スクリーンショット 2016-04-18 17.59.05.png

Device IDの取得やOculus Signature Fileの設定などはこちらの良記事を参考にしました。

▫️Unity5でGear VR用アプリの開発方法
http://psychic-vr-lab.com/blog/unity/unity5%E3%81%A7gear-vr%E7%94%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E8%A8%AD%E5%AE%9A/

上記事のOculus Mobile SDKは使わず、
チュートリアルも公開されてたので、
Unity公式のVRサンプルプロジェクトを参考にしました。

処理の作り方

まずはAssetストアからVR Sampleをダウンロードしてインポート。

スクリーンショット 2016-04-18 18.08.41.png

参考にしたのは
VRSampleScenes/Scenes/Examples/Reticleシーンです。
こちらを開く。

初期状態はこんな感じでした。

ピンクのがポインターか!
スクリーンショット 2016-04-18 18.11.33.png

もともとあるcubeの設定を読み解いて真似てみた。

今回はこのバナナをポインターに反応させるようにする。

スクリーンショット 2016-04-18 17.45.08.png

バナーナちゃんに下記設定。

1.コライダーを設定。
2.VRInteractiveItem.csをアタッチ。
3.scripts/Exsamples/ExampleInteractiveItemを複製して
BananaInteractiveItem(名前任意)にリネームしてアタッチ。

処理のスクリプト書く

ExampleInteractiveItem.csを読み解くと、
イベントをハンドリングしてるところを発見。

ExampleInteractiveItem.cs
private void HandleOver() // 注視点がGameObjectに重なった時
private void HandleOut() // 注視点が外れた時

となっているようだ。
なので、
注視点のポインターとGameObjectが重なった時の処理はここに書けば良いのでは?

BananaInteractiveItem.csの

BananaInteractiveItem.cs
//Handle the Over event
private void HandleOver()
{
    Debug.Log("over");
    // ここに爆発処理を入れました〜。
    //m_Renderer.material = m_OverMaterial;  マテリアル変更してるとこは使わないのでコメントアウト
}

でできました。

爆発にはDetonatorというアセットを使用しました。
http://qiita.com/yando/items/eac9e0dbc1376b9cf141

この爆発、iosで実機確認すると爆発しないことがありました。
解決法はこちらの記事を参考にしました。
http://aidiary.hatenablog.com/entry/20140813/1407927404

チュートリアル実践して理解が深まるとともに追記しようと思います〜。
もっとVRやる