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文件,安装到带有陀螺仪的手机就可以了。运行后会看到,当手机位姿变化时,方块也会随着变化。但是手机陀螺仪会有少许漂移。当手机不动时候,场景中的方块也许会有少量移动。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Unity UGUI通过摇杆控制角色移动
本文实例为大家分享了Unity UGUI通过摇杆控制角色移动的具体代码,供大家参考,具体内容如下 简单版:控制方块的移动. 进阶版:控制人物的移动 知识铺垫: 首先我们必须要知道,在Unity的UGUI中,对UI的操作有八个回调,分别需要实现八个接口.分别是: 鼠标进入,鼠标离开,鼠标点下,鼠标抬起,鼠标开始拖拽,鼠标拖拽中,拖拽结束 如下所示: 我们可以先对这几个接口方法进行一下测试: 测试结束后,大家就会对这些接口方法有一些初步的了解. using UnityEngine; using Un
-
Unity3D使用陀螺仪控制节点旋转
本文实例为大家分享了Unity3D陀螺仪控制节点旋转的具体代码,供大家参考,具体内容如下 /******************************************************************** Desc: 陀螺仪对相机的逻辑类. *********************************************************************/ using System; using System.Collections; using
-
Unity UI或3D场景实现跟随手机陀螺仪的晃动效果
需求 当游戏显示3d场景及其UI的时候.玩家左右晃动手机的时候,UI界面会随之左右偏移.上下晃动的时候,3D场景会随之上下偏移.手机停止晃动的时候,如若偏移的UI或场景,停顿一会后自动恢复到初始默认位置. 分析 首先本文功能应对的是横屏游戏(竖屏游戏的话也差不多一样,大家自己拓展下),假设当我们拿起手机玩游戏,手机会有四个部位,分别为左手拿的左手边和右手拿的右边,以及屏幕内容的上方和下方(下文中会用左手边,右手边,上方,下方来描述).每个部位的倾斜都会造成UI或场景的偏移效果 我们可以先用一个枚
-
Unity3D手机陀螺仪的使用方法
使用手机陀螺仪,可以获取手机的3D姿态,这在开发中是很有用的.当然现在的手机内置的陀螺仪都是比较廉价的,精度不高,但是作为实验设备看看效果还是可以的.本文将给出调用手机陀螺仪的简单方法. 首先,我们需要在场景中添加大量方块,作为观察对象. 控制陀螺仪的脚本: using UnityEngine; using System.Collections; public class gyroscope : MonoBehaviour { bool draw = false; bool gyinfo; Gy
-
PHP实现查询手机归属地的方法详解
本文介绍的是PHP实现查询手机归属地的方法,首先来看看手机归属地查询的类图: 后台 MobileQuery类调用: \libs\HttpRquest \libs\ImRedis (未使用) Api类调用 MobileQuery 类的 Query 方法来返回 $response 的数据,并进行加工. 前台 base.js 使用 .ajax 请求,并将请求后的数据填充到index.html 中. 核心代码展示 AutoLoad.php <?php /** * TODO Auto-generated
-
Android实现手机振动设置的方法
本文实例讲述了Android实现手机振动设置的方法.分享给大家供大家参考.具体如下: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi
-
Android调用手机拍照功能的方法
本文实例讲述了Android调用手机拍照功能的方法.分享给大家供大家参考.具体如下: 一.main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" andr
-
Android编程之手机壁纸WallPaper设置方法示例
本文实例讲述了Android编程之手机壁纸WallPaper设置方法.分享给大家供大家参考,具体如下: /** * Andorid设置手机屏幕的壁纸 * * @description: * @author ldm * @date 2016-5-4 下午3:08:56 */ public class SetWallpaperActivity extends Activity { // WallpaperManager类:系统壁纸管理.通过它可以获得当前壁纸以及设置指定图片作为系统壁纸. priva
-
Android编程实现手机震动功能的方法
本文实例讲述了Android编程实现手机震动功能的方法.分享给大家供大家参考,具体如下: 在与用户交互时,常常会用到震动功能,以提醒用户.该功能实现比较简单,请参阅下面主要代码: import android.app.Activity; import android.app.Service; import android.os.Vibrator; public class TipHelper { public static void Vibrate(final Activity activity
-
Android实现手机壁纸改变的方法
本文实例讲述了Android实现手机壁纸改变的方法.分享给大家供大家参考.具体如下: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi
-
Android实现编程修改手机静态IP的方法
本文实例讲述了Android实现编程修改手机静态IP的方法.分享给大家供大家参考.具体如下: 这里演示通过编程方式动态修改手机静态IP的方法,可以用于wifi接入点切换 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ContentResolver cr = this.getContentResolver();
-
Android开发之获取SD卡及手机ROM容量的方法
本文实例讲述了Android获取SD卡及手机ROM容量的方法.分享给大家供大家参考,具体如下: 这里通过一个简单的小例子,来获取SD卡的容量和手机ROM的容量,代码如下: package com.urovo.sdcardspace; import java.io.File; import android.os.Bundle; import android.os.Environment; import android.os.StatFs; import android.app.Activity;
-
Android 下调试手机截屏的方法
Android 下调试手机截屏的方法 Android开发过程中,难免会需要对手机进行截屏.以前截屏时一直到处找截屏软件,操作复杂. 今天刚发现,原来ADT是自带截屏功能的,而且操作简单. 打开DDMS视图,在Device框的右上角有一个照相机的小图标按钮,此按钮即可实现截屏功能,如图. 点击该按钮时,弹出如下对话框: 然后就可以将截屏图片保存或复制了! 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
随机推荐
- PHP入门学习笔记之一
- Vue中如何实现轮播图的示例代码
- asp.net 网页动态查询条件的实现
- Web 开发中Ajax的Session 超时处理方法
- 漂亮实用的页面loading(加载)封装代码
- Visual Studio 2017 离线安装教程
- thinkphp模板赋值与替换实例简述
- golang简单获取上传文件大小的实现代码
- ASP开发准则是什么
- asp之自动闭合HTML/ubb标签函数附简单注释
- Android 开发照相功能实例详解
- php将html转成wml的WAP标记语言实例
- 如何编写一个小数转换分数的函数?
- SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)
- 创建简单的node服务器实例(分享)
- php 页面执行时间计算代码
- PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
- python数据预处理之将类别数据转换为数值的方法
- 特漂亮的JS图片排列旋转效果代码
- 第五节--克隆
