Поворот при прикосновении к гироскопу в мобильном устройстве, который ведет себя странным образом - PullRequest
0 голосов
/ 06 июня 2018

Я использую gvr sdk в моем проекте, чтобы получить 360-градусный обзор во время воспроизведения видео через камеру.Но когда я поворачиваю камеру на ощупь, само вращение ведет себя странным образом, то есть в ландшафтном режиме вращение по оси Y работает нормально, но когда гироскоп перемещается вправо или влево, вращение по оси Xведет себя как вращение оси Z.Пожалуйста помоги.Ниже приведен код простого поворота по осям X и Y с помощью сенсорного ввода на устройстве.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RCPlayer : MonoBehaviour
{
    public static RCPlayer Instance;
    //public GameObject Head;
    //public GameObject Camera;

    Vector3 FirstPoint;
    Vector3 SecondPoint;
    float xAngle;
    float yAngle;
    float xAngleTemp;
    float yAngleTemp;

    void Awake()
    {
        Instance = this;
    }

    void Start()
    {
        xAngle = 0;
        yAngle = 0;
        transform.rotation = Quaternion.Euler(yAngle, xAngle, 0);
    }

    void Update()
    {      
        if (Input.touchCount > 0)
        {
            if (Input.GetTouch(0).phase == TouchPhase.Began)
            {
                FirstPoint = Input.GetTouch(0).position;
                xAngleTemp = xAngle;
                yAngleTemp = yAngle;
            }

            if (Input.GetTouch(0).phase == TouchPhase.Moved)
            {
                SecondPoint = Input.GetTouch(0).position;

                if (FirstPoint - SecondPoint == Vector3.zero)
                {
                    return;
                }
                else
                {
                    xAngle = xAngleTemp + (SecondPoint.x - FirstPoint.x) * 180 / Screen.width;
                    yAngle = yAngleTemp - (SecondPoint.y - FirstPoint.y) * 180 / Screen.height;
                    transform.rotation = Quaternion.Euler(-yAngle * 0.5f, -xAngle * 0.5f, 0.0f);
                }
            }
        }
    }   
}
...