簡體   English   中英

如何在當前設備方向啟用陀螺儀攝像頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM