码迷,mamicode.com
首页 > 编程语言 > 详细

【小超_U3D】Unity3D对陀螺仪的使用

时间:2015-04-22 18:39:10      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:unity3d   虚拟现实   陀螺仪   

最近在做虚拟现实的项目,一直在查找Unity里面关于陀螺仪的文章。下面这代码就是我在网上找出来,当我使用的却不能用技术分享。现在这是经过修改过后的,大家尽管复制就能使用了,非常的方便。

using UnityEngine;
using System.Collections;
//摄像机  陀螺仪转动
public class IphoneGyro : MonoBehaviour
{

    //bool gyroBool;
    Gyroscope gyro;
    Quaternion quatMult;
    Quaternion quatMap;
    UILabel ul;
    GameObject player;
   GameObject camParent;
    void Awake()
    {
        player = GameObject.Find("Player");
        // find the current parent of the camera's transform
        Transform currentParent = transform.parent;
        // instantiate a new transform
         camParent = new GameObject("camParent");
        // match the transform to the camera position
        camParent.transform.position = transform.position;
        // make the new transform the parent of the camera transform
        transform.parent = camParent.transform;
        // make the original parent the grandparent of the camera transform
        //camParent.transform.parent = currentParent;
        // instantiate a new transform
        GameObject camGrandparent = new GameObject("camGrandParent");
        // match the transform to the camera position
        camGrandparent.transform.position = transform.position;
        // make the new transform the parent of the camera transform
        camParent.transform.parent = camGrandparent.transform;
        // make the original parent the grandparent of the camera transform
        camGrandparent.transform.parent = currentParent;

        //gyroBool = true;
        //if (gyroBool) {
        gyro = Input.gyro;
        ul = GameObject.Find("Rotation").GetComponent<UILabel>();

        gyro.enabled = true;
        camParent.transform.eulerAngles = new Vector3(90,0, 0);
        quatMult = new Quaternion(0, 0, 1, 0);
     
    }

    void Update()
    {
    
        quatMap = new Quaternion(gyro.attitude.x, gyro.attitude.y, gyro.attitude.z, gyro.attitude.w);
        Quaternion qt=quatMap * quatMult;
      
         transform.localRotation =qt;
       
      
        ul.text = "Rotation:" + transform.localRotation + "player" + player.transform.localRotation;
       
        
    }
   
}
Android上完美运行


转载请注明:http://blog.csdn.net/dzc372787439


【小超_U3D】Unity3D对陀螺仪的使用

标签:unity3d   虚拟现实   陀螺仪   

原文地址:http://blog.csdn.net/dzc372787439/article/details/45195163

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!