unity实现Slam

利用陀螺仪可进行实现简单的效果,手机静止时不是特别的稳定

  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class gyroscope : MonoBehaviour {  
  5.   
  6.     bool draw = false;  
  7.     bool gyinfo;  
  8.     Gyroscope go;  
  9.     void Start()  
  10.     {  
  11.         gyinfo = SystemInfo.supportsGyroscope;  
  12.         go = Input.gyro;  
  13.         go.enabled = true;  
  14.     }  
  15.     void Update()  
  16.     {  
  17.         if (gyinfo)  
  18.         {  
  19.             Vector3 a = go.attitude.eulerAngles;  
  20.             a = new Vector3(-a.x, -a.y, a.z); //直接使用读取的欧拉角发现不对,于是自己调整一下符号  
  21.             this.transform.eulerAngles = a;  
  22.             this.transform.Rotate(Vector3.right * 90, Space.World);          
  23.             draw = false;  
  24.         }  
  25.         else  
  26.         {  
  27.             draw = true;  
  28.         }  
  29.     }  
  30.   
  31.     void OnGUI()  
  32.     {  
  33.         if (draw)  
  34.         {  
  35.             GUI.Label(new Rect(100, 100, 100, 30), "启动失败");  
  36.         }  
  37.     }  
  38.      
  39. }  
将脚本绑定到ARCamera即可实现简单的SLam效果,但是还没有实现大小的变化

你可能感兴趣的:(unity)