Unity实现苹果手机Taptic震动

本文实例为大家分享了Unity苹果手机Taptic震动的具体代码,供大家参考,具体内容如下

文件:ios震动.zip

将上方文件解压之后将MultiHaptic.mm的文件放到Assets/Plugins/iOS目录下,MultiHaptic.cs文件不用挂载到游戏物体上,在需要的时候调用里面的三个静态方法即可

附上MultiHaptic.cs的代码:

using UnityEngine;
using System.Runtime.InteropServices;

public class MultiHaptic
{
  [DllImport("__Internal")]
  static extern void _hapticMedium();

  [DllImport("__Internal")]
  static extern void _hapticLight();

  [DllImport("__Internal")]
  static extern void _hapticHeavy();

  public static void HapticLight()
  {
    if (Application.platform == RuntimePlatform.IPhonePlayer)
      if (PlayerPrefs.GetInt("Taptic", 1) == 1)
      {
        _hapticLight();
      }
  }

  public static void HapticMedium()
  {
    if (Application.platform == RuntimePlatform.IPhonePlayer)
      if (PlayerPrefs.GetInt("Taptic", 1) == 1)
      {
        _hapticMedium();
      }
  }

  public static void HapticHeavy()
  {
    if (Application.platform == RuntimePlatform.IPhonePlayer)
      if (PlayerPrefs.GetInt("Taptic", 1) == 1)
      {
        _hapticHeavy();
      }
  }
}

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

(0)

相关推荐

  • Unity UI或3D场景实现跟随手机陀螺仪的晃动效果

    需求 当游戏显示3d场景及其UI的时候.玩家左右晃动手机的时候,UI界面会随之左右偏移.上下晃动的时候,3D场景会随之上下偏移.手机停止晃动的时候,如若偏移的UI或场景,停顿一会后自动恢复到初始默认位置. 分析 首先本文功能应对的是横屏游戏(竖屏游戏的话也差不多一样,大家自己拓展下),假设当我们拿起手机玩游戏,手机会有四个部位,分别为左手拿的左手边和右手拿的右边,以及屏幕内容的上方和下方(下文中会用左手边,右手边,上方,下方来描述).每个部位的倾斜都会造成UI或场景的偏移效果 我们可以先用一个枚

  • Unity实现苹果手机Taptic震动

    本文实例为大家分享了Unity苹果手机Taptic震动的具体代码,供大家参考,具体内容如下 文件:ios震动.zip 将上方文件解压之后将MultiHaptic.mm的文件放到Assets/Plugins/iOS目录下,MultiHaptic.cs文件不用挂载到游戏物体上,在需要的时候调用里面的三个静态方法即可 附上MultiHaptic.cs的代码: using UnityEngine; using System.Runtime.InteropServices; public class Mu

  • Unity实现手机摇一摇震动

    在手机经常使用摇一摇这种操作方式,在unity中也可以实现震动,iPhone与Android的函数不一样,在ios中用的函数为iPhoneUtils.Vibrate()在Android中函数为Handheld.Vibrate(); 具体代码: using UnityEngine; using System.Collections; public class FunctionVibrate : MonoBehaviour { //实现手机晃动震动效果 // Use this for initial

  • iOS中关于Taptic-Engine震动反馈的深入解析

    前言 TapticEngine是什么总的来说,TapticEngine是苹果产品上推出的全新震动模块名称,最早出现在AppleWatch中,苹果iPhone6s和iPhone6sPlus也内置了TapticEngine,设计上有所升级.TapticEngine的全新震动模块,这颗震动模块经过特殊设计,能在短时间内达到震动的最佳状态,是普通振动马达所做不到的.Taptic这个单词本身没有什么含义,比较接近的词是Haptic(触觉). TapticEngine工作原理传统的手机震动器是马达带着偏振片

  • Unity实现Flappy Bird游戏开发实战

    本文实例为大家分享了Unity实现Flappy Bird游戏的具体代码,供大家参考,具体内容如下 参考:腾讯课程(零基础制作像素鸟) 环境:Unity2017.2.0f3 主界面(Main)的制作 没有什么技巧性 注意点: 1.写好Button的点击效果,并在UI上添加效果 2.切换界面的实现不需要通过load,直接设置SetActive()true or false 来的更快更效率 // 比如:当点击打开解释说明的按钮时候 public void clickOpenExplainScene()

  • iOS中震动反馈(UIFeedbackGenerator)与系统震动详解

    Taptic Engine 先了解一个概念--Taptic Engine Taptic Engine 是苹果产品上推出的全新震动模块,该元件最早出现在 Apple Watch 中.iPhone 6s 和 iPhone 6s Plus 中,也同样内置了Taptic Engine,在设计上有所升级. Taptic Engine 振动模块为 Apple Watch 以及 iPhone 6s.iPhone 7 提供了 Force Touch 以及 3D Touch,不同的屏幕操作,可以感受到不同的振动触

  • C#中Socket与Unity相结合示例代码

    前言 初步接触了Socket,现使其与Unity相结合,做成一个简单的客户端之间可以互相发送消息的一个Test.下面话不多说了,来一起看看详细的介绍吧. 方法如下: 首先,是服务端的代码. 创建一个连接池,用于存储客户端的数量. using System; using System.Net; using System.Net.Sockets; using System.Collections; using System.Collections.Generic; namespace Server

  • Unity编辑器下重启的方法

    Unity编辑器下重启的方法 我们项目AssetBundle打包走的是全自动化流程,打包之前要进行各种资源检测,如果检测顺利通过,则进入打包,否则提示错误资源名称及路径,打包中断!有时候即使资源检测通过也会打包崩溃,初步断定是Unity的内存爆了,因为Unity在编辑器下打开工程中的资源不会释放掉,所以内存一直在占用,打包时要进行一系列资源依赖分析,我们也知道,如果资源量非常大时候,Unity要保存资源依赖的堆栈,所以会有内存崩掉的风险,所以我就想着,打包之前重启下Unity,让Unity释放掉

  • 基于jQuery实现Div窗口震动特效代码-代码简单

    这是一款jQuery窗口震动效果代码,在Div边框内点击一下鼠标,它就开始震动了,适用浏览器:IE8.360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗等. 效果图如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns=&q

  • jQuery实现的Div窗口震动效果实例

    本文实例讲述了jQuery实现的Div窗口震动效果.分享给大家供大家参考.具体如下: 这是一款jQuery窗口震动效果代码,在Div边框内点击一下鼠标,它就开始震动了,适用浏览器:IE8.360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗等. 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/D

  • 基于iOS实现音乐震动条效果

    一.简单分析 音乐震动条不需要与用户交互.我们可以使用复制层来操作.添加震动条.添加动画. 复制层说明 //创建复制层 -(void)createRepl{ //复制层 CAReplicatorLayer * repL = [CAReplicatorLayer layer]; repL.frame = self.contentV.bounds; //复制6份 repL.instanceCount = 6; //形变,每一个形变都是相对于上一个复制出来的子层开始的 repL.instanceTra

随机推荐