使用Unity3D怎么實(shí)現(xiàn)一個(gè)手機(jī)陀螺儀,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶(hù)提供滿(mǎn)意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十多年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶(hù),如成都高空作業(yè)車(chē)租賃等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶(hù)的一致稱(chēng)贊。
控制陀螺儀的腳本:
using UnityEngine; using System.Collections; public class gyroscope : MonoBehaviour { bool draw = false; bool gyinfo; Gyroscope go; void Start() { gyinfo = SystemInfo.supportsGyroscope; go = Input.gyro; go.enabled = true; } void Update() { if (gyinfo) { Vector3 a = go.attitude.eulerAngles; a = new Vector3(-a.x, -a.y, a.z); //直接使用讀取的歐拉角發(fā)現(xiàn)不對(duì),于是自己調(diào)整一下符號(hào) this.transform.eulerAngles = a; this.transform.Rotate(Vector3.right * 90, Space.World); draw = false; } else { draw = true; } } void OnGUI() { if (draw) { GUI.Label(new Rect(100, 100, 100, 30), "啟動(dòng)失敗"); } } }
該腳本綁定到主攝像機(jī)上,發(fā)布成apk文件,安裝到帶有陀螺儀的手機(jī)就可以了。運(yùn)行后會(huì)看到,當(dāng)手機(jī)位姿變化時(shí),方塊也會(huì)隨著變化。但是手機(jī)陀螺儀會(huì)有少許漂移。當(dāng)手機(jī)不動(dòng)時(shí)候,場(chǎng)景中的方塊也許會(huì)有少量移動(dòng)。
關(guān)于使用Unity3D怎么實(shí)現(xiàn)一個(gè)手機(jī)陀螺儀問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。