1. 程式人生 > 程式設計 >Unity3D移動端實現搖一搖功能

Unity3D移動端實現搖一搖功能

手機搖一搖功能在平時專案開發中是很常見的需求,利用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();
  }
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。