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 System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShakePhone : MonoBehaviour
{
    private float old_y = 0;
    private float new_y;
    private float currentDistance = 0;

    public float distance = 2;  

	void Update () {
        new_y = Input.acceleration.y;
        currentDistance = new_y - old_y;
        old_y = new_y;

        if (currentDistance > distance)
        {
            Handheld.Vibrate();
        }
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章