Unity 手机功能 之 手机摇一摇震动功能快速实现。本节介绍在Unity中,手机摇一摇后产生震动的效果的简单案例,具体如下
工具/原料
Unity
手机
一、知识要点
1、Handheld.Vibrate:1)功能简述public static voidVibrate();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 staticVector3acceleration;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”脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassVibrateTest:MonoBehaviour{privatefloatpreviousAccY; privatefloatcurrentAccY; privatefloatdAccY;//Usethisforinitialization voidStart(){previousAccY=0.0f; currentAccY=0.0f; dAccY=0.0f; } //Updateiscalledonceperframe voidUpdate(){Acceleration();if(dAccY>0.8f){Vibration(); } }privatevoidAcceleration(){currentAccY=Input.acceleration.y; dAccY=currentAccY-previousAccY; previousAccY=currentAccY; }privatevoidVibration(){Handheld.Vibrate(); }}
5、脚本编译正确,回到Unity界面,在场景中新建一个“GameObject”,把脚本“VibrateTest”赋给“GameObject”,具体如下图
6、保存场景,切换成手机平台,打包编包,手机摇晃测试震动OK,具体如下图
7、到此,《Unity 手机功能 之 手机摇一摇震动功能快速实现》讲解结束,谢谢