[英]How to enable gyroscope camera at current device Direction
public class GyroControl : MonoBehaviour
{
private bool gyroEnabled;
private Gyroscope gyro;
private GameObject cameraContainer;
private Quaternion rot;
private void Start()
{
cameraContainer = new GameObject("Camera Container");
cameraContainer.transform.position = transform.position;
transform.SetParent(cameraContainer.transform);
cameraContainer.transform.rotation = transform.rotation;
gyroEnabled = EnableGyro();
}
private bool EnableGyro()
{
if (SystemInfo.supportsGyroscope)
{
gyro = Input.gyro;
gyro.enabled = true;
cameraContainer.transform.rotation = Quaternion.Euler(90f, 0f, -90f);
rot = new Quaternion(0, 0, 1, 0);
return true;
}
return false;
}
private void Update()
{
if (gyroEnabled)
{
transform.localRotation = gyro.attitude * rot;
}
}
}
我希望每次我開始游戲時我的手機都指向西方,這使它成為開始方向,所以我不想開始看到膠囊總是在北方,但無論我的方向是什么,我都想看到膠囊總是在北方。在我前面,所以如果我開始游戲並且我的手機指向東方,我想看到那個方向的膠囊。
我希望它足夠清楚
如果我理解正確,一個解決方案是將陀螺儀的初始旋轉寫入一個字段。 然后始終將該四元數的倒數應用於Update
函數中的旋轉。
當然,您可能還需要添加一個不變的偏移旋轉,具體取決於您希望開始旋轉的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.