如何在Unity新Input System的Input Actions面板添加陀螺仪/加速度计控制绑定
Unity新输入系统添加陀螺仪/加速度计绑定的解决方案
一、基础设置确认
- 打开
Edit > Project Settings > Player > Android > Other Settings,在Permissions区域勾选ACCESS_GYROSCOPE和ACCESS_ACCELEROMETER——安卓系统要求明确授权才能访问传感器硬件。 - 进入Package Manager,确保Input System包是与Unity 2022.2.17兼容的最新版本(建议1.4.x及以上),版本不符则点击更新。
二、在Input Actions面板添加传感器绑定
- 打开你的
.inputactions资源文件,进入编辑界面。 - 创建新的Action Map(比如命名为
SensorControls),在其中添加对应Action:- 陀螺仪相关:创建
GyroRotation(类型选Value,控制类型设为Vector3或Quaternion,按需选择) - 加速度计相关:创建
AccelerometerTilt(类型选Value,控制类型设为Vector3)
- 陀螺仪相关:创建
- 为每个Action添加绑定:
- 点击Action右侧的
+选择Add Binding - 在绑定路径输入框手动填写传感器路径:
- 陀螺仪姿态:
<Gyroscope>/attitude - 陀螺仪旋转速率:
<Gyroscope>/rotationRate - 加速度计数据:
<Accelerometer>/acceleration
- 陀螺仪姿态:
- 点击Action右侧的
- 保存设置后,将项目部署到真机测试。
三、解决「监听」不识别的问题
编辑器本身没有陀螺仪/加速度计硬件,所以Input Actions面板的「监听」功能无法捕捉传感器输入,必须部署到你的三星Galaxy S6 Lite真机上才能看到信号。如果部署后仍无反应,去平板的应用设置里,确认测试应用已被授予传感器权限。
四、代码验证(可选)
若要快速确认传感器数据是否正常读取,可使用以下测试脚本:
using UnityEngine; using UnityEngine.InputSystem; public class SensorTest : MonoBehaviour { public InputAction gyroAttitudeAction; public InputAction accelAction; private void OnEnable() { gyroAttitudeAction.Enable(); accelAction.Enable(); } private void OnDisable() { gyroAttitudeAction.Disable(); accelAction.Disable(); } private void Update() { Debug.Log("陀螺仪姿态: " + gyroAttitudeAction.ReadValue<Quaternion>()); Debug.Log("加速度计数据: " + accelAction.ReadValue<Vector3>()); } }
将脚本挂载到场景物体上,在Inspector中拖入对应的Input Action,部署后查看Logcat输出即可验证数据。
内容的提问来源于stack exchange,提问作者TheyCallMeTJ
相关产品推荐
相关产品推荐

