Unity3D移動(dòng)端實(shí)現(xiàn)搖一搖功能
手機(jī)搖一搖功能在平時(shí)項(xiàng)目開(kāi)發(fā)中是很常見(jiàn)的需求,利用Unity的重力感應(yīng)可以很方便的實(shí)現(xiàn)該功能。
Unity簡(jiǎn)化了重力感應(yīng)的開(kāi)發(fā), 通過(guò)訪問(wèn)Input.acceleration屬性,取回加速度傳感器的值。首先我們看一下重力傳感器的方向問(wèn)題。Unity3D中重量的取值范圍是 -1.0 到 +1.0.
X軸:home按鍵在下手機(jī)面朝天向右旋轉(zhuǎn)90度重力分量為+1.0 向左旋轉(zhuǎn)90度重力分量為-1.0
Y軸:home按鍵在上手機(jī)背朝自己重力分量為+1.0 home按鍵在下手機(jī)面朝自己重力分量為-1.0
Z軸:手機(jī)面朝地面重力分量為+1.0 手機(jī)面朝天空重力分量為-1.0
方向如下圖所示。
unity中使用Input.acceleration的x,y,z屬性即可獲得重力分量:
Input.acceleration.x; 重力感應(yīng)X軸的重力分量
Input.acceleration.y; 重力感應(yīng)Y軸的重力分量
Input.acceleration.z; 重力感應(yīng)Z軸的重力分量
搖一搖功能代碼如下:
using UnityEngine; using System.Collections; public class CellphoneVibrate : MonoBehaviour { //記錄上一次的重力感應(yīng)的Y值 private float old_y = 0; //記錄當(dāng)前的重力感應(yīng)的Y值 private float new_y; //當(dāng)前手機(jī)晃動(dòng)的距離 private float currentDistance = 0; //手機(jī)晃動(dòng)的有效距離 public float distance; void Update() { new_y = Input.acceleration.y; currentDistance = new_y - old_y; old_y = new_y; if (currentDistance > distance) { //實(shí)現(xiàn)手機(jī)晃動(dòng)震動(dòng)效果 Handheld.Vibrate(); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.net使用Aspose.Words進(jìn)行Word替換操作的實(shí)現(xiàn)代碼
之前在工作中,需要實(shí)現(xiàn)Word打印功能,并且插入圖片。當(dāng)時(shí)采取的方式則是使用書(shū)簽進(jìn)行操作。首先在word內(nèi)插入書(shū)簽,完成后,存為模板。程序加載該模板,找到書(shū)簽,并在指定位置寫(xiě)入文字即可2013-05-05C#使用分部類(lèi)設(shè)計(jì)實(shí)現(xiàn)一個(gè)計(jì)算器
分部類(lèi)是C#4.5中的一個(gè)新特性,它的出現(xiàn)使得程序的結(jié)構(gòu)更加合理,代碼組織更加緊密,本文將使用分部類(lèi)設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器,感興趣的小伙伴可以了解下2024-02-02C#實(shí)現(xiàn)TIF圖像轉(zhuǎn)PDF文件的方法
這篇文章主要介紹了C#實(shí)現(xiàn)TIF圖像轉(zhuǎn)PDF文件的方法,涉及C#使用TIFtoPDF工具實(shí)現(xiàn)pdf文件轉(zhuǎn)換的技巧,需要的朋友可以參考下2015-07-07C# WebService創(chuàng)建、發(fā)布、調(diào)用的實(shí)例講解
下面小編就為大家分享一篇C# WebService創(chuàng)建、發(fā)布、調(diào)用的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12