我无法在Unity VR示例场景中以播放模式移动光标

时间:2017-09-19 12:15:06

标签: unity3d virtual-reality

我使用Unity https://www.assetstore.unity3d.com/en/#!/content/51519中的VR样本和场景' Shooter 360' (虽然我已尝试过其他场景)。

我在Mac和XR设置中同时拥有模拟HMD - HTC'和Oculus SDK'支持的。

当我按下Play时,我根本无法移动光标或与GUI交互。有什么建议吗?

screenshot

1 个答案:

答案 0 :(得分:1)

默认情况下,您使用的 SDK 将在运行时旋转相机(Cardboard,Oculus,HTC Vive,...)。

您可以使用在编辑模式下旋转相机的脚本。下面是一个示例,只需将此脚本分配给相机,然后在编辑器窗口中移动鼠标时按左键

public class EditorCameraController : MonoBehaviour 
{    
    public float sensitivityX = 15F;
    public float sensitivityY = 15F;
    public float minimumX = -360F;
    public float maximumX = 360F;
    public float minimumY = -60F;
    public float maximumY = 60F;
    private float rotationX = 0F;
    private float rotationY = 0F;
    private Quaternion originalRotation;

    void Start()
    {
        originalRotation = transform.localRotation;
    }

    void Update () 
    {
        if (Input.GetKey(KeyCode.LeftControl))
        {
            rotationX += Input.GetAxis("Mouse X") * sensitivityX;
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationX = ClampAngle(rotationX, minimumX, maximumX);
            rotationY = ClampAngle(rotationY, minimumY, maximumY);
            Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
            Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, -Vector3.right);
            transform.localRotation = originalRotation * xQuaternion * yQuaternion;
        }
    }

    public static float ClampAngle(float angle, float min, float max)
    {
        if (angle < -360F)
         angle += 360F;
        if (angle > 360F)
         angle -= 360F;
        return Mathf.Clamp(angle, min, max);
    }
}