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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 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框的右上角有一个照相机的小图标按钮,此按钮即可实现截屏功能,如图. 点击该按钮时,弹出如下对话框: 然后就可以将截屏图片保存或复制了! 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

随机推荐