Unity3D中手机陀螺仪的使用

Posted 雁回晴空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D中手机陀螺仪的使用相关的知识,希望对你有一定的参考价值。

        使用手机陀螺仪,可以获取手机的3D姿态,这在开发中是很有用的。当然现在的手机内置的陀螺仪都是比较廉价的,精度不高,但是作为实验设备看看效果还是可以的。本文将给出调用手机陀螺仪的简单方法。

       首先,我们需要在场景中添加大量方块,作为观察对象。



       控制陀螺仪的脚本:

using UnityEngine;
using System.Collections;

public class gyroscope : MonoBehaviour 

    bool draw = false;
    bool gyinfo;
    Gyroscope go;
    void Start()
    
        gyinfo = SystemInfo.supportsGyroscope;
        go = Input.gyro;
        go.enabled = true;
    
    void Update()
    
        if (gyinfo)
        
            Vector3 a = go.attitude.eulerAngles;
            a = new Vector3(-a.x, -a.y, a.z); //直接使用读取的欧拉角发现不对,于是自己调整一下符号
            this.transform.eulerAngles = a;
            this.transform.Rotate(Vector3.right * 90, Space.World);        
            draw = false;
        
        else
        
            draw = true;
        
    

    void OnGUI()
    
        if (draw)
        
            GUI.Label(new Rect(100, 100, 100, 30), "启动失败");
        
    
   


        该脚本绑定到主摄像机上,发布成apk文件,安装到带有陀螺仪的手机就可以了。运行后会看到,当手机位姿变化时,方块也会随着变化。但是手机陀螺仪会有少许漂移。当手机不动时候,场景中的方块也许会有少量移动。






以上是关于Unity3D中手机陀螺仪的使用的主要内容,如果未能解决你的问题,请参考以下文章

unity3d啥设备才能用陀螺仪

unity3d中怎么实现让摄像机跟随手机的方向改变而改变

维特WT931 姿态角度传感器(陀螺仪)使用记录

unity3d 安卓陀螺仪控制 中心点按钮读秒确认问题

STM32实现六轴姿态测量陀螺仪模块JY61P(标准库与HAL库实现)

STM32实现六轴姿态测量陀螺仪模块JY61P(标准库与HAL库实现)