Unity3D移動端實現搖一搖功能
阿新 • • 發佈:2020-01-07
手機搖一搖功能在平時專案開發中是很常見的需求,利用Unity的重力感應可以很方便的實現該功能。
Unity簡化了重力感應的開發,通過訪問Input.acceleration屬性,取回加速度感測器的值。首先我們看一下重力感測器的方向問題。Unity3D中重量的取值範圍是 -1.0 到 +1.0.
X軸:home按鍵在下手機面朝天向右旋轉90度重力分量為+1.0 向左旋轉90度重力分量為-1.0
Y軸:home按鍵在上手機背朝自己重力分量為+1.0 home按鍵在下手機面朝自己重力分量為-1.0
Z軸:手機面朝地面重力分量為+1.0 手機面朝天空重力分量為-1.0
方向如下圖所示。
unity中使用Input.acceleration的x,y,z屬性即可獲得重力分量:
Input.acceleration.x; 重力感應X軸的重力分量
Input.acceleration.y; 重力感應Y軸的重力分量
Input.acceleration.z; 重力感應Z軸的重力分量
搖一搖功能程式碼如下:
using UnityEngine; using System.Collections; public class CellphoneVibrate : MonoBehaviour { //記錄上一次的重力感應的Y值 private float old_y = 0; //記錄當前的重力感應的Y值 private float new_y; //當前手機晃動的距離 private float currentDistance = 0; //手機晃動的有效距離 public float distance; void Update() { new_y = Input.acceleration.y; currentDistance = new_y - old_y; old_y = new_y; if (currentDistance > distance) { //實現手機晃動震動效果 Handheld.Vibrate(); } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。