现在我正在为大学的最后一个学期做一个项目,我所在的地区通过凝视着(google VR SDK)改变了场景。
首先,我只是添加了代码来更改场景。有效。但是我想要增强功能,所以我使用了在YouTube上观看过的凝视定时器(链接:https://www.youtube.com/watch?v=bmMaVTV8UqY)
现在,凝视计时器动画可以正常工作,但是NexScene1代码中的SceneSwitcher功能不起作用。
在添加了凝视定时器功能的新场景之后,我完成了“构建”。 另外,我使用了在YouTube上显示的标记。
这就是我所做的。
public class VRGaze : MonoBehaviour {
public Image imgGaze;
public float totalTime = 2;
bool gvrStatus;
float gvrTimer;
public int distanceOfRay = 10;
private RaycastHit _hit;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (gvrStatus)
{
gvrTimer += Time.deltaTime;
imgGaze.fillAmount = gvrTimer / totalTime;
}
Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0.5f));
if(Physics.Raycast(ray, out _hit, distanceOfRay))
{
if(imgGaze.fillAmount == 1 && _hit.transform.CompareTag("NexScene1"))
{
_hit.transform.gameObject.GetComponent<NexScene1>().SceneSwitcher();
}
}
}
public void GVROn() {
gvrStatus = true;
}
public void GVROff() {
gvrStatus = false;
gvrTimer = 0;
imgGaze.fillAmount = 0;
}
}
public class NexScene1 : MonoBehaviour {
public UnityEngine.UI.Scrollbar obj_scroll_;
public GameObject player;
public void PointEnter()
{
StartCoroutine(TimeToAction());
}
public void PointExit()
{
StopAllCoroutines();
}
public void SceneSwitcher()
{
SceneManager.LoadScene("Page2");
}
void Start () {
}
// Update is called once per frame
void Update () {
}
}
不是真正的错误,而是VRGaze不会调用SwitchScene函数
不是错误,但控制台显示:
建议使用GvrPointerPhysicsRaycaster或 具有GvrPointerInputModule的GvrPointerGrahpicRaycaster。