首先下载sdk,包里面有许多prefab。
GvrViewerMain 用于分屏
主摄像机添加脚本PhysicsRaycaster Gvr Audio Listener 凝视点是通过将prefab(GvrReticle)拖到主摄像机下
想凝视操作物体:
在物体上加脚本EventTrigger 添加事件就可以了(凝视,离开凝视,鼠标点击事件)
要想使这些事件被凝视有用,需要一个在EventSystem上面加脚本GazeInputModule,并且移除脚本Standalone Input Moudle。
想凝视点击按钮(ui界面):
直接在carvas下就ok了,因为在EventSystem上面已经加了脚本GazeInputModule。
以上是官方Demo的方法。
方法二是
拖动prefab(GvrMain)到主面板,它包含了所有的组件,自带摄像机,我们只需要写一个脚本来进行控制。这个脚本是通过物体上的触发器,从触发器到凝视点发射线,要是射线碰到了就产生一些操作。需要在物体上加触发器。
using UnityEngine;
using System.Collections;
public class Torward : MonoBehaviour {
public Transform playerPosition;
public Transform targetPosition;
GvrHead head;
public BoxCollider targetCollider;
public float speed = 1.0f;
// Use this for initialization
void Start () {
// originalPosition = targetPosition.position;
head = Camera.main.GetComponent<StereoController>().Head;//获得引用,之后产生射线调用
}
// Update is called once per frame
void Update () {
RaycastHit hit;
if(targetCollider.Raycast(head.Gaze,out hit, Mathf.Infinity))
{
playerPosition.position = Vector3.MoveTowards(playerPosition.position,targetPosition.position,speed*Time.deltaTime);
}
}
}
第二种方法局限性比较大,不能点击物体。
上面的都是电脑端了。手机端的看Demo2