2017-09-19 1 views
1

J'utilise les Samples VR de Unity https://www.assetstore.unity3d.com/en/#!/content/51519 avec la scène 'Shooter 360' (bien que j'aie essayé les autres scènes).Je n'arrive pas à déplacer le curseur en mode lecture dans la scène exemple Unity VR

Je suis sur un Mac et dans les paramètres XR, j'ai à la fois 'Mock HMD - HTC' et 'Oculus SDK' pris en charge. Lorsque j'appuie sur Lecture, je suis incapable de déplacer le curseur ou d'interagir avec l'interface graphique. Des recommandations?

screenshot

Répondre

1

Par défaut, il est le SDK vous utilisez cela tourner la caméra à l'exécution (carton, Oculus, HTC Vive, ...).

Vous pouvez utiliser un script qui fera pivoter la caméra en mode édition. Voici un exemple, simplement attribuer ce script à votre appareil photo et appuyez sur Ctrl gauche tout en déplaçant la souris dans la fenêtre de l'éditeur:

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); 
    } 
}