Unity陀螺仪

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
//摄像机  陀螺仪转动
public class TGyro : MonoBehaviour
{
	
	//bool gyroBool;
	Gyroscope gyro;
	Quaternion quatMult;
	Quaternion quatMap;
	//UILabel ul;
	public GameObject player;
	public 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(0,0, 0);
		quatMult = new Quaternion(0, 0, 1, 0);//猜测陀螺仪默认是向下的,这里是沿z轴转180度
		
	}
	
	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;
		
		
	}
	
}


 

posted @ 2015-11-04 18:24  00000000O  阅读(270)  评论(0编辑  收藏  举报