Устаревшие данные imu после цикла паузы и возобновления паузы в единстве, развернутом на AndroidAndroid

Форум для тех, кто программирует под Android
Anonymous
Устаревшие данные imu после цикла паузы и возобновления паузы в единстве, развернутом на Android

Сообщение Anonymous »

Ниже приведен минимальный воспроизводимый пример. Просто создайте объект в новой сцене и прикрепите к нему этот скрипт. При запуске на устройстве Android объект будет вращаться вместе с телефоном. Если вы расфокусируете перефокусировку, все по-прежнему работает нормально, но если вы приостановите работу приложения (нажмете кнопку питания на телефоне и оставите его в спящем режиме на несколько секунд), когда приложение не поставлено на паузу, данные imu, похоже, не обновляются в течение нескольких секунд. (кажется, пропорционально длительности паузы, что заставляет меня думать, что буфер или что-то еще заполняется).
Есть ли способ это исправить? (не знаю, как это связано, но это происходит только тогда, когда устройство работает от батареи, а не при подключении к сети)
using UnityEngine;

public class GyroController : MonoBehaviour
{
private void Start()
{
// Enable the gyroscope
Input.gyro.enabled = true;
Input.gyro.updateInterval = 0.02f;
}

private void Update()
{

}
private void FixedUpdate()
{
// Get the gyroscope attitude (rotation)
Quaternion gyroRotation = Input.gyro.attitude;

// Convert the gyroscope rotation to Unity's coordinate system
Quaternion convertedRotation = new Quaternion(gyroRotation.x, gyroRotation.y, -gyroRotation.z, -gyroRotation.w);

// Apply the rotation to the parent object
transform.rotation = convertedRotation;
}
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... to-android

Вернуться в «Android»