Я хотел управлять камерой с помощью гироскопа Unity, и я увидел код в другом посте о том, как это сделать. Но поведение Google Pixel и Samsung S7 отличается, мне нужно протестировать приложение. Кажется, что та же самая сцена с тем же кодом перевернута на 180 градусов вдоль одной из осей.
using System.Collections;
using System.Collections.Generic;
using JetBrains.Annotations;
using UnityEngine;
public class GyroControl : MonoBehaviour {
private bool gyroEnabled;
private Gyroscope gyroscope;
private GameObject cameraContainer;
private Quaternion rotation;
void Start () {
cameraContainer = new GameObject ("Camera Container");
cameraContainer.transform.position = transform.position;
transform.SetParent (cameraContainer.transform);
Screen.sleepTimeout = SleepTimeout.NeverSleep;
gyroEnabled = EnableGyro ();
}
private bool EnableGyro() {
if (SystemInfo.supportsGyroscope) {
gyroscope = Input.gyro;
gyroscope.enabled = true;
cameraContainer.transform.rotation = Quaternion.Euler (90.0f, 0.0f, 0.0f);
rotation = new Quaternion (0, 0, 1, 0);
return true;
}
return false;
}
void Update () {
if (gyroEnabled) {
transform.localRotation = gyroscope.attitude * rotation;
}
}
}
код здесь