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框的右上角有一个照相机的小图标按钮,此按钮即可实现截屏功能,如图. 点击该按钮时,弹出如下对话框: 然后就可以将截屏图片保存或复制了! 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
随机推荐
- 如何用数据库制作一个多用户版的计数器?
- 5种Java经典创建型模式详解
- Java实现获取客户端真实IP方法小结
- python出现"IndentationError: unexpected indent"错误解决办法
- ToString()使用方法汇总(c#)
- 我用php+mysql写的留言本
- PHP实现单例模式最安全的做法
- C++基于对话框的程序的框架实例
- Android Mouse实现过程详细笔记
- VBScript教程 第六课VBScript运算符
- Google 地图获取API Key详细教程
- javascript常见数据验证插件大全
- Javascript学习笔记之 函数篇(三) : 闭包和引用
- Nginx中泛域名配置的实例教程
- Android下Activity全屏显示实现方法
- PHP面向对象分析设计的61条军规小结
- 轻量级asp.net ajax解决方案详解
- 北邮考研复试C语言上机题目精选
- keyword标签有利搜索的修改
- redis之django-redis的简单缓存使用