Unity 手机功能 之 手机摇一摇震动功能快速实现
1、Handheld.Vibrate:
1)功能简述
public static void Vibrate();
Triggers device vibration.
2)压泪彩使用案例
using UnityEngine;
using System.Collections;public class ExampleClass : MonoBehaviour{
void OnGUI() {
if (GUI.Button(new Rect(0, 10, 100, 32), "Vibrate!"))
Handheld.Vibrate();
}
}
2、Input.acceleration:
1)功能简述
public static Vector3 acceleration;
Last measured linear acceleration of a device in three-dimensional space. (Read Only)
2)使用案例蚊栗
using UnityEngine;
using System.Collections;public class ExampleClass : MonoBehaviour {
public float speed = 10.0F;
void Update() {
Vector3 dir = Vector3.zero;
dir.x = -Input.acceleration.y;
dir.z = Input.acceleration.x;
if (dir.sqrMagnitude > 1)
dir.Normalize();
dir *= Time.deltaTime;
transform.Translate(dir * speed);
}
}
3、方法提示:
1)Input.acceleration获取手机摇晃情施爬况
2)当摇晃超过某一值,调用手机震动Handheld.Vibrate
1、打开Unity,新建一个空工程,具体如下图

2、在工程中新建一个脚本“VibrateTest”,双击脚本或者右键“Open C# Project”打开脚本,具体如下图


3、在打开的脚本“VibrateTest”上编辑代码,首先设置变量,然后初始化变量,接着在Update函数中监视手机摇晃,当摇晃到一定程度按调用手机震动,最后实现手机摇晃监听函数和手机摇晃函数,具体代码和代码说明如下图

4、“VibrateTest”脚本具体内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VibrateTest : MonoBehaviour {
private float previousAccY;
private float currentAccY;
private float dAccY;
// Use this for initialization
void Start () {
previousAccY = 0.0f;
currentAccY = 0.0f;
dAccY = 0.0f;
}
// Update is called once per frame
void Update () {
Acceleration ();
if(dAccY > 0.8f) {
Vibration ();
}
}
private void Acceleration(){
currentAccY = Input.acceleration.y;
dAccY = currentAccY - previousAccY;
previousAccY = currentAccY;
}
private void Vibration() {
Handheld.Vibrate ();
}
}
5、脚本编译正确,回到Unity界面,在场景中新建一个“GameObject”,把脚本“VibrateTest”赋给“GameObject”,具体如下图

6、保存场景,切换成手机平台,打包编包,手机摇晃测试震动OK,具体如下图

7、到此,《Unity 手机功能 之 手机摇一摇震动功能快速实现》讲解结束,谢谢