最近在做虚拟现实的项目,一直在查找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
原文地址:http://blog.csdn.net/dzc372787439/article/details/45195163