unity如何获取手机加速度计和陀螺仪传感器的信息
作者是个大二学牲,在学习获取手机传感器信息的时候看了很多文章,刚开始感觉看到稀里糊涂的,感觉国内没有适合纯小白的获取方法,所以写下这篇文章,希望对你有用。
准备
为了方便调试,我们需要在手机上下载unity Remote,这是一个可以在电脑上调试unity手机应用的软件,这里我们需要通过它来传输手机传感器的信息。接下来请跟着我一步一步操作(此处参考文章https://zhuanlan.zhihu.com/p/31662218)
1. 在移动设备上安装Unity Remote并运行。
2. 用USB线连接设备和电脑(设备USB连接必须开启【允许调试】模式)。开启【允许调试】模式的方法可以参考B站的这个视频BV19Y411M73H
3. 在unity中,Edit > Project Settings > Editor,将这三个选项设置成下图所示。

4.将unity的平台设置为Android,File>Bulid Settings 将Platform设置成Android然后点击右下角的switch platform即可。
5.手机上打开unity Remote然后电脑上点击Unity game窗口点击播放按钮,手机上的各项操作就会同步发送、传输到unity game 窗口,可以在电脑上方便的进行查看和体验了。
获取传感器的信息
获取移动端的传感器信息的方法unity已经将其设置成api了,所以获取方法非常简单。(此处可参考这篇文章https://zhuanlan.zhihu.com/p/54615598)
要使用加速度计,只需要用到Input.acceleration即可,具体代码如下
float x = Input.acceleration.x;
float y = Input.acceleration.y;
float z = Input.acceleration.z;
要使用陀螺仪,只需要用到Input.gyro即可,具体代码如下
Input.gyro.enabled = true;//使用陀螺仪前需要先将陀螺仪打开
float x = Input.gyro.attitude.x;
float y = Input.gyro.attitude.y;
float z = Input.gyro.attitude.z;
接下来我们进行实际操作演示一下
1.在场景中设置一个对象用于挂载脚本(对象无具体要求,你可以直接create empty)
2.在对象上挂载用于获取传感器信息的脚本,代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class getdate : MonoBehaviour
{
void Start()
{
Input.gyro.enabled = true;//打开陀螺仪
}
void Update()
{
Debug.Log("陀螺仪"+Input.gyro.attitude+" 加速度计("+Input.acceleration.x+","+Input.acceleration.y+","+Input.acceleration.z+")");
}
}
3.恭喜你到这一步就全部完成了,接下来只需要手机上打开unity remote然后电脑上点击Unity game窗口点击播放按钮,然后你就可以在电脑上的console一栏看到手机的传感器信息啦

PS:这是作者写的第一篇文章,如果有错误或不足的地方欢迎各位大佬指出,或者文章对你有帮助可以给作者点个赞(灬╹ω╹灬)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)