一:介绍
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;
}