Unity中实现移动端振动——Nice Vibrations插件

一:介绍

Nice Vibrations可以为IOS和Android提供简单而强大的振动和触觉反馈
通常,iOS手机的性能要比Android手机好得多,并提供更多控制功能
——在IOS端
支持旧的Taptic振动(从iOS 10和iPhone 7开始)以及最新的CoreHaptics振动(仅在运行iOS13+的iPhone8和更高版本上支持)。像连续,瞬态,AHAP这些高级功能取决于是否引入了CoreHaptics的API支持
——在Android端
对于运行低于25版本的SDK的Android设备,将无法控制幅度


二:插件中的目录结构

插件下载:https://download.csdn.net/download/LLLLL__/12493343

——Common:包含触发Android和iOS上的触觉反馈所需的所有脚本,不要从此文件夹中删除任何内容
——Demos:演示案例
——OlderVersions:Nice Vibrations先前版本(v2.0适用于Unity 2019.2.9或更高版本,v3.0适用于Unity 2019.3或更高版本,本文提供的版本是v3.0)
——ThirdParty:包含一个第三方API,用于解析AHAP文件并将其转换为Android Waveforms


三:使用

引入命名空间using MoreMountains.NiceVibrations

——最简单的振动

MMVibrationManager.Vibrate();


——不同模式的振动

MMVibrationManager.Haptic(HapticTypes.Selection);
MMVibrationManager.Haptic(HapticTypes.Success);
MMVibrationManager.Haptic(HapticTypes.Warning);
MMVibrationManager.Haptic(HapticTypes.Failure);
MMVibrationManager.Haptic(HapticTypes.LightImpact);
MMVibrationManager.Haptic(HapticTypes.MediumImpact);
MMVibrationManager.Haptic(HapticTypes.HeavyImpact);
MMVibrationManager.Haptic(HapticTypes.RigidImpact);
MMVibrationManager.Haptic(HapticTypes.SoftImpact);

1.Selection:极轻微振动——可用于点击按钮
2.Success:普通振动——可用于游戏胜利
3.Warning:普通振动——可用于游戏提示
4.Failure:普通振动——可用于游戏失败
5.LightImpact:轻微振动
6.MediumImpact:中度振动
7.HeavyImpact:重度振动
8.RigidImpact:强硬而时间稍长一些的振动
9.SoftImpact:柔软而时间稍长一些的振动


——瞬间的振动

MMVibrationManager.TransientHaptic(强度0-1, 感知度0-1);


——连续的振动

MMVibrationManager.ContinuousHaptic(强度0-1, 感知度0-1,持续时间,振动类型,this);


——控制全局的Haptic振动开启或关闭

MMVibrationManager.SetHapticsActive(true);
MMVibrationManager.SetHapticsActive(false);


——判断设备是否支持Haptic振动

bool isSupported = MMVibrationManager.HapticsSupported();


四:振动回调

——对于使用MMVibrationManager.Haptic

/// <summary>
/// 振动结束时
/// </summary>
protected virtual void OnHapticsStopped()
{

}

/// <summary>
/// 振动错误时
/// </summary>
protected virtual void OnHapticsError()
{

}

/// <summary>
/// 振动重置时
/// </summary>
protected virtual void OnHapticsReset()
{

}

private void OnEnable()
{
    MMNViOSCoreHaptics.OnHapticPatternStopped += OnHapticsStopped;
    MMNViOSCoreHaptics.OnHapticPatternError += OnHapticsError;
    MMNViOSCoreHaptics.OnHapticPatternReset += OnHapticsReset;
}

private void OnDisable()
{
    MMNViOSCoreHaptics.OnHapticPatternStopped -= OnHapticsStopped;
    MMNViOSCoreHaptics.OnHapticPatternError -= OnHapticsError;
    MMNViOSCoreHaptics.OnHapticPatternReset -= OnHapticsReset;
}


——对于使用MMVibrationManager.TransientHaptic和MMVibrationManager.ContinuousHaptic

/// <summary>
/// 振动结束时
/// </summary>
protected virtual void OnHapticsStopped()
{

}

private void OnEnable()
{
    MMNViOSCoreHaptics.OnHapticPatternStopped += OnHapticsStopped;
}

private void OnDisable()
{
    MMNViOSCoreHaptics.OnHapticPatternStopped -= OnHapticsStopped;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello Bug.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值