unity手機端指南針安卓測試有效
阿新 • • 發佈:2018-12-25
建立如圖遊戲物件,
注意指南針初始旋轉值為0,0,0,而且圖片北方朝向正前方
新建指令碼Compass.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; public class Compass : MonoBehaviour { // Use this for initialization void Start () { Input.compass.enabled = true; } //百度一下利用Input.compass實現指北針 //OnGUI的呼叫次數 void OnGUI() { //Input.location.Start(); ////地理北極就是北方,也是磁南極 //GUILayout.Label(" rawVector: " + Input.compass.rawVector.ToString() //用microteslas測量的原始地磁資料 // + " trueHeading: " + Input.compass.trueHeading.ToString() //相對應地理北極的度數 // + " headingAccuracy: " + Input.compass.headingAccuracy.ToString() //標題度數的準確度 // + " magneticHeading: " + Input.compass.magneticHeading.ToString(), GUILayout.Width(5000), GUILayout.Width(200));//相對於磁北極的度數 } [SerializeField] Text text; [SerializeField] Text text1; [SerializeField] Text text2; [SerializeField] Text text3; [SerializeField] Image compass; float dushu = 0;//記錄北方度數 float tempdushu = 0;//臨時記錄資料來判斷角度變化是否大於2 // Update is called once per frame void FixedUpdate () { //如何確定參照物 //當度數為 358-2度 手機的正前方就是北方 Input.location.Start(); text.text = " rawVector: " + Input.compass.rawVector.ToString();//用microteslas測量的原始地磁資料 //相對應地理北極的度數 手機頭正對方向 北方360/0 東方90 西方180 南方270 text1.text = " trueHeading: " + Input.compass.trueHeading.ToString(); text2.text = " headingAccuracy: " + Input.compass.headingAccuracy.ToString(); //標題度數的準確度 text3.text = " magneticHeading: " + Input.compass.magneticHeading.ToString();////相對於磁北極的度數 dushu = Input.compass.trueHeading; /*trueHeading image/z 北方358 360 0 2 0 東方88 92 90 南方269 272 270 西方180 180 */ //為防止抖動 度數變化超過二的時候才賦值 if (Mathf.Abs(tempdushu-dushu)>3) { tempdushu = dushu; compass.transform.eulerAngles = new Vector3(0, 0, dushu); } } }
然後掛載指令碼,拖相關Text,以及Image
,然後打包到手機測試即可,圖片最尖的地方就是北方