我尝试使用google cardboard sdk统一创建VR场景。我将一个立方体和CardboardMain.prefab添加到场景中。有一个示例场景检测焦点在立方体上。它的层次结构视图是:
我不知道如何添加GUIReticle对象或预制像图像一样。
如何检测对象的焦点?
答案 0 :(得分:2)
实际上你可以自己制作剧本,这很简单。
您可以使用主摄像头中的RayCast
来检测用户是否正在查看您的对象。如果RayCast
命中了您的对象,那么它就会被关注。
例如:
using UnityEngine;
using System;
[RequireComponent(typeof(Collider))]
public class LookableObject : MonoBehaviour {
[SerializeField]
Transform cam; // This is the main camera.
// You can alternately use Camera.main if you've tagged it as MainCamera
bool focus; // True if focused
Collider gazeArea; // Your object's collider
public void Start () {
gazeArea = GetComponent<Collider> ();
}
public void Update () {
RaycastHit hit;
if (Physics.Raycast (cam.position, cam.forward, out hit, 1000f)) {
focus = (hit.collider == gazeArea);
} else {
focus = false;
}
}
}
编辑:这只是一个例子。您可能希望制作一个脚本来仅执行一次Raycast,而不是一遍又一遍地对每个对象执行Raycast,以使您的项目运行得更快。