Unity手机移动设备重力感应

Unity手机移动设备重力感应

一、引入

大家对重力感应应该都不陌生,之前玩过的王者荣耀的资源更新界面就是使用了重力感应的概念,根据手机的晃动来给实体进行晃动。下图的王者荣耀刚开始的界面其实就是使用的移动设备的重力感应。

二、介绍

Unity内部的重力感应其实已经写好了,这篇文章只是讲下如何使用。Unity内部有一个Input.acceleration 这个属性。下面是官方的解释

Description 描述

我们看到这个函数返回的是Vector3,尔Vector3有三个方向分别为下x,y,z这三个float组成的,其实只要搞明白这三个向量对应移动端的方向我们就可以做一些细节的操作。

三、测试成果

这里我直接把这三个向量的测试成果放在这里,我们把手机水平放在桌子上,然后俯视 手机来说一下这个acceleration这个向量是如何对应的手机重力。

X Y轴


水平方向

手机左边不动,抬起右边到90度,对应的Input.acceleration.x变化,变化为从0到-1.0,简单记录为:0 → -1.0

手机右边不动,抬起左边到90度,对应的Input.acceleration.x变化,变化为从0到1.0,简单记录为:0 → 1.0
垂直方向

手机下边不动,抬起上边到90度,对应的Input.acceleration.y变化,变化为从0到-1.0,简单记录为:0 → -1.0

手机上边不动,抬起下边到90度,对应的Input.acceleration.y变化,变化为从0到1.0,简单记录为:0 → 1.0

Z轴

水平方向 :无论从哪边开始往上抬,到90度,然后到180度,就是我们的手机的玻璃正面扣到桌面上了,对应的Input.acceleration.z变化,变化为从-1.0到0再到1.0,
简单记录为 : - 1.0→ 0 → 1.0;
垂直方向 :按照上面的操作也是一样的,对应的Input.acceleration.z变化,变化为从-1.0到0再到1.0,
简单记录为: - 1.0→ 0 → 1.0;

横屏的手机,如下图

竖屏的手机,如下图

移动设备游戏中经常会遇到重力感应的开发,Unity简化了重力感应的开发,通过访问Input.acceleration属性,取回加速度传感器的值。

相关推荐
个微管理7 小时前
告别多手机切换烦恼,无需下载安装软件的CRM管理系统
微信·智能手机·自动化·微信开放平台
陈希瑞9 小时前
【保姆级教程】安卓手机免Root一键部署AutoGLM:支持语音控制与自动化操作
android·智能手机·自动化
技术小甜甜9 小时前
[Godot] 解决导出APK安装失败的常见问题:深入分析与调试方法
游戏引擎·godot·游戏开发
wanhengidc13 小时前
裸金属服务器都有哪些优势?
运维·服务器·安全·智能手机·生活
wanhengidc13 小时前
具有ARM架构云手机的功能
运维·服务器·arm开发·科技·智能手机·云计算
wanhengidc13 小时前
巨 椰 云手机离线多开
运维·服务器·科技·智能手机·云计算
老朱佩琪!14 小时前
Unity桥接模式
unity·设计模式·c#·桥接模式
技术小甜甜14 小时前
[Godot][入门] 安装与版本选择:3.x 还是 4.x?(按项目类型一键决策)
游戏引擎·godot·游戏开发·2d
陈言必行14 小时前
Unity 之 物理引擎中三种刚体力施加方式详解
unity·游戏引擎
foreveryao12314 小时前
Unity渲染流程(底层逻辑)
unity·游戏引擎·图形渲染