Unity中如何实现手机摇一摇触发的震动效果?

更新于
2026-10-10 17:35:52
1阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计253个文字,预计阅读时间需要2分钟。

Unity中如何实现手机摇一摇触发的震动效果?

在手机上经常使用摇晃操作,Unity中也可实现震动效果。iPhone与Android的函数不同,iOS中使用的函数为iPhoneUtils.Vibrate(),Android中函数为Handheld.Vibrate();具体代码如下:

Unity中如何实现手机摇一摇触发的震动效果?

csharpusing UnityEngine;using UnityEngine.iOS;

public class VibrationManager : MonoBehaviour{ public void Vibrate() {#if UNITY_IOS iPhoneUtils.Vibrate();#elif UNITY_ANDROID Handheld.Vibrate();#endif }}

在手机经常使用摇一摇这种操作方式,在unity中也可以实现震动,iPhone与Android的函数不一样,在ios中用的函数为iPhoneUtils.Vibrate()在Android中函数为Handheld.Vibrate();

具体代码:

using UnityEngine; using System.Collections; public class FunctionVibrate : MonoBehaviour { //实现手机晃动震动效果 // Use this for initialization float old_y = 0; float new_y; float max_y = 0; float min_y = 0; float d_y = 0; public float distance = 0.3f; void Start () { } // Update is called once per frame void Update () { new_y = Input.acceleration.y; d_y = new_y - old_y; old_y = new_y; if(Input.GetKey(KeyCode.Escape)) { Application.Quit(); } } int i; void OnGUI() { //if(GUI.Button(new Rect(0,100,100,32),"vibrate!")) //{ // //震动 // Handheld.Vibrate(); //} GUI.Label(new Rect(100,100,100,100),"g:"+Input.acceleration+"d_y:"+d_y); GUI.Label(new Rect(100,200,100,100),"i:"+i); if(d_y>distance) { i++; Handheld.Vibrate(); } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计253个文字,预计阅读时间需要2分钟。

Unity中如何实现手机摇一摇触发的震动效果?

在手机上经常使用摇晃操作,Unity中也可实现震动效果。iPhone与Android的函数不同,iOS中使用的函数为iPhoneUtils.Vibrate(),Android中函数为Handheld.Vibrate();具体代码如下:

Unity中如何实现手机摇一摇触发的震动效果?

csharpusing UnityEngine;using UnityEngine.iOS;

public class VibrationManager : MonoBehaviour{ public void Vibrate() {#if UNITY_IOS iPhoneUtils.Vibrate();#elif UNITY_ANDROID Handheld.Vibrate();#endif }}

在手机经常使用摇一摇这种操作方式,在unity中也可以实现震动,iPhone与Android的函数不一样,在ios中用的函数为iPhoneUtils.Vibrate()在Android中函数为Handheld.Vibrate();

具体代码:

using UnityEngine; using System.Collections; public class FunctionVibrate : MonoBehaviour { //实现手机晃动震动效果 // Use this for initialization float old_y = 0; float new_y; float max_y = 0; float min_y = 0; float d_y = 0; public float distance = 0.3f; void Start () { } // Update is called once per frame void Update () { new_y = Input.acceleration.y; d_y = new_y - old_y; old_y = new_y; if(Input.GetKey(KeyCode.Escape)) { Application.Quit(); } } int i; void OnGUI() { //if(GUI.Button(new Rect(0,100,100,32),"vibrate!")) //{ // //震动 // Handheld.Vibrate(); //} GUI.Label(new Rect(100,100,100,100),"g:"+Input.acceleration+"d_y:"+d_y); GUI.Label(new Rect(100,200,100,100),"i:"+i); if(d_y>distance) { i++; Handheld.Vibrate(); } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。