using UnityEngine;

/// <summary>检测设备方向</summary>
public class CheckDeviceOrientation : MonoBehaviour
{
private void Start()
{
initGyro();
}

/// <summary>初始化陀螺仪</summary>
private void initGyro()
{
Input.gyro.enabled = true;
Input.gyro.updateInterval = 0.1f;
}

private bool isBackCamera = true;

private void Update()
{
checkOrientation();
}

/// </summary>
void checkOrientation()
{
if (Mathf.Abs(Input.gyro.gravity.z) <= 0.9f)
{
DeviceOrientation curOrientation = DeviceOrientation.Unknown;
if (Mathf.Abs(Input.gyro.gravity.x) > Mathf.Abs(Input.gyro.gravity.y))
{
if (Input.gyro.gravity.x > 0f)
{
curOrientation = DeviceOrientation.LandscapeRight;
}
else
{
curOrientation = DeviceOrientation.LandscapeLeft;
}
}
else if (Input.gyro.gravity.y > 0f)
{
curOrientation = !this.isBackCamera ? DeviceOrientation.Portrait : DeviceOrientation.PortraitUpsideDown;
}
else
{
curOrientation = !this.isBackCamera ? DeviceOrientation.PortraitUpsideDown : DeviceOrientation.Portrait;
}
}
}


}