LoginSignup
25
22

More than 5 years have passed since last update.

UnityでVRを触ってみた 〜視点の検知編〜

Posted at

はじめに

VR作りたくて、Unityで試行錯誤して何とか動いたのでそのまとめ2です。
今回はオブジェクトに視点を合わせると色が変わるようにしてみます。

前回の記事
- UnityでVRを触ってみた 〜導入編〜

環境

  • Mac OSX v10.11
  • Google VR SDK v0.8
  • Unity v5.3.5

いざ開発!

〜導入編〜が終わっていることを前提に進めたいと思います。

1. 視点を表示する

前回にImportしたGoogle VR SDKの中にGvrReticleというPrefabがありますので、それをMain Cameraの中に置きます。

GvrReticle.png

再生ボタンを押して白い点が表示されていればOKです。

スクリーンショット 2016-07-18 23.02.46.png

2. オブジェクトに視点が入ったことを検知する

検知させるために色々準備が必要ですので順を追って説明します。
まず、Main Camera に Physics Raycaster をAdd Componentします。

PhysicsRaycaster.png

次に、EventSystem をSceneに追加します。メニューの [GameObject] -> [UI] -> [EventSystem] で追加。そして、EventSystemGaze Input Module を追加します。
この時、優先度を上げるために1つ上にMove Upしておきます。

GazeInputModule.png

次に、視点が入ったことを検知したいオブジェクトに Event Trigger を追加します。ここでは赤いCubeに追加しました。

EventTrigger.png

再生ボタンを押して実際に視点を赤いCubeに合わせると、視点のマークが反応することが分かるかと思います。

3. 視点を合わせると色を変える

最後に視点が合わせると色が変わる様にしたいので、赤いCubeに視点が合わさると緑色に変わるようにしたいと思います。
まず、Cube に New Script を Add Component します。
スクリプトの中身は以下のような感じです。


using UnityEngine;
using System.Collections;

public class CubeScript : MonoBehaviour  {

    void Start () {
        SetGazedAt(false);
    }

    void Update () {

    }

    public void SetGazedAt(bool gazedAt) {
        GetComponent<Renderer>().material.color = gazedAt ? Color.green : Color.red;
    }

    public void OnGazeEnter() {
        Debug.Log ("OnGazeEnter");
        SetGazedAt(true);
    }

    public void OnGazeExit() {
        Debug.Log ("OnGazeExit");
        SetGazedAt(false);
    }

}

Cubeの Event Trigger の Add New Event Type を押して Pointer Enter と Pointer Exit を追加します。そして、各々のイベントを先ほどのスクリプトと関連付けを行います。

eventtrigger2.png

完成です!
再生して確認してみると視点が合わさると色が変わっていることが分かります!

スクリーンショット 2016-07-19 0.39.08.png

25
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
22