如何限制Unity3D Google Cardboard中的头部旋转?

时间:2015-05-04 05:51:10

标签: c# android unity3d google-cardboard

我无法限制轮换。我已将此脚本添加到Cardboard Main对象,Head对象和Main Camera对象,但没有成功。这是我到目前为止所做的,并没有停止轮换。

void FixedUpdate () {

    if (transform.eulerAngles.y > 60 && transform.eulerAngles.y < 190)
    {

        transform.eulerAngles = new Vector3(transform.eulerAngles.x, 60, transform.eulerAngles.z);
    }

    if (transform.eulerAngles.y > 190 && transform.eulerAngles.y < 300)
    {

        transform.eulerAngles = new Vector3(transform.eulerAngles.x, 300, transform.eulerAngles.z);
    }
}

提前致谢!

2 个答案:

答案 0 :(得分:3)

谷歌纸板SDK有代码设置每帧的头部方向。即使你设置了你的,他们也会在执行时覆盖它。如果要调整头部移动,请通过修改Cardboard脚本来执行此操作。

另外,你不应该这样做。在VR应用程序中强制用户移动一些相机是一种让他们迷失方向或恶心的简单方法。你想通过限制头部的可能方向来实现什么目标?

答案 1 :(得分:0)

在CardboardHead.cs中,在UpdateHead()下面添加bool updateEarly

public float limit = 0.5f;

然后改变:

transform.localRotation = rot;

为:

transform.localRotation = Quaternion.Slerp(rot, Quaternion.Euler(Vector3.forward), limit);

这将为您提供头部对象的限制参数,可用于限制纸板旋转的灵敏度。