【Unity 实用工具篇】✨| 受击插件Feel 详细教程
开发游戏时如何操控 游戏打击感?利用好Feel插件可快速提升游戏感 四、Feel插件使用说明 总结
前言
开发游戏时如何操控 游戏打击感?利用好Feel插件可快速提升游戏感 一、Feel插件简介
Feel 是一款开箱即用的为游戏提供游戏感(反馈)的Unity平台下的工具插件。
模块化的设计,易于扩展;编辑器下的预览,十足便捷。
官方介绍:
说简单点就是Feel 插件 可以让我们的游戏增加游戏感,所以我们才要来学习Feel的使用啦!
二、Feel插件下载地址
官方下载地址:
下载之后从Unity的中找到该插件导入工程即可。
其他下载地址:
微信搜我名字(呆呆敲代码的小Y) 回复素材资源即可领取。
三、Feel插件核心概念
插件官方文档地址:#
3.1 反馈器()
是所有反馈行为的基类,处理了反馈效果的基于时间的状态管理(播放、暂停、恢复、停止等)。
不同反馈器的参数都不尽相同,因为要每种反馈器都是负责不同的功能管理,所以不同反馈器的配置参数也会有很大的区别。
如、、等参数示例图如下:
3.2 播放器()
是的容器及管理器。
开发者在组件下配置好所需的操作,在运行时调用该实例的 () 即可触发受击反馈效果的播放。
在播放反馈效果时,该组件可以显示当前所有的播放状态,让我们对各个受击反馈有一个大概的时间管理。
3.3 振动器()
既可以控制游戏实体的表现,也需要能控制游戏内的,像是镜头()、音频监听器(Audio )等组件。
出于解耦的考虑,Feel在镜头、音乐监听器上添加 来监听抛出的广播。
虽然有些反馈将直接与对象交互,但其他一些反馈将向侦听器广播事件。Bloom反馈,音量或 反馈都是这样工作的。这个侦听器被称为,因为它将在接收端“摇动”目标值。在每个反馈的检查器上,通常会看到你需要一个反馈。在API文档、代码注释或反馈列表中也有详细的解释。
3.4 信道()
每个和触发的都有一个信道()参数,信道用来控制触发哪个相匹配的。
只有互相匹配的通道,在触发受击效果时才会触发。不同通道的互不影响
3.5 暂停器()
默认情况下,管理的所有都是同时播放。Feel插件中有两种类型的暂停器,分别是 Pause 和 Pause 。
Pause 会和其他在它之上的一起被激活,而之后的会在Pause执行完毕之后再执行。
也就是说必须要等该Pause的执行时间结束之后,Pause下面的才可以继续执行,相当于为Pause下面的卡了个统一的延迟时间。
Pause 在等待其之上(前面)的所有操作完成之后才会执行。
在列表中添加 Pause相当于等待之前的所有完成,再等待 Pause的Pause 之后才继续执行。
3.6 循环(Loops)
虽然在所有的的 -> 下,可以通过设置相关的选项来控制每个的循环播放。
如果想循环播放一系列的操作,则需要使用 进行统一操作了。
包括该Loops的暂停时间,循环次数等都可以进行配置。
使用 Start 可以自定义哪些需要重复。
从定义好的 Start操作到 之间的操作进行重复播放,这样就不用每次都重复之上的所有效果了。
3.7 概率()
每个反馈都有一个 概率滑块,让我们定义它发生的概率,从0(永远不会发生)到100(总是发生)。
默认情况下,该值总是100。概率值为25%的反馈每玩4次才会出现一次。
可以简单理解为给该添加一个触发概率,控制该的触发行为。
3.8 时间控制()
在每个反馈上,都会有一个折叠,朝向其检查器的顶部,里面有一些参数。
展开它可以让你访问以下选项:
参数描述
Mode 时间尺度模式
放或未缩放,将允许您定义反馈应该在缩放或未缩放的时间上运行。这是非常情境化的,并不适用于所有的反馈。
Delay 初始延迟
以秒为单位,在执行此反馈之前应用的延迟
冷却时间
在播放后,反馈不能再次播放的时间(以秒为单位)(有助于防止用户控制的反馈被垃圾邮件发送)
uses 从等待暂停中排除
该设置允许保持暂停忽略此反馈。这在处理一个特别长的反馈时很有用,你只是想让它开始,而不是延迟序列的其余部分。
ation 贡献到总持续时间
是否将此反馈计算在父 ()总时长中
of 重复次数
该反馈应该重复的次数(默认为0)
永远重复
选中此复选框可以让您的反馈永远重复
Delay 重复之间的延迟
在重复模式下,在反馈再次播放之前应该通过的延迟,以秒为单位
Play 播放方向
这个部分让你定义当它的父以特定的方向播放(默认从上到下,或者相反,从下到上)时,这个特定的反馈应该如何反应。
方向条件
让你定义这个反馈是否总是播放,或者只在父反向或正向播放(默认)时播放。
Play 播放方向
让你定义这个反馈应该总是在正常模式下播放,反向,在它的主机方向上播放,还是在它的主机的相反方向上播放。大多数反馈都具有“反向发挥”的可能性。例如,位置反馈将一个对象从a点带到B点,当反向播放时,它将从B点带到a点。
恒定强度
当玩游戏时,会使用一个可选的强度来调用它的子,这是一个让你调节反馈的“强烈”程度的倍增器。如果你检查恒定强度,这个反馈将忽略全局修饰符。
Use 使用强度间隔
如果勾选,将让你定义一个最小和最大强度,在这个反馈将发挥。强度超出此范围将不会触发此反馈。如果你有一个,根据它的强度会产生不同的结果,这是很有用的。例如,想象在一款游戏中,你的角色可能会受到伤害,你希望它在受到严重伤害时以红色闪烁,在受到轻微伤害时以黄色闪烁。一个“被损坏”的可以有一个反馈,只有当强度在0到50之间时,才会将损坏的角色染成黄色,而另一个反馈,当强度在50到100之间时触发。
序列
用于播放此反馈的序列
Track ID 轨道ID
在序列上使用的ID
量化
序列是否应该以量化模式播放
四、Feel插件使用说明 4.1 导入Feel插件
Feel插件支持.4.3及以上的版本。以下以.3.33f1为例,新建一个默认的3D项目,导入Feel插件。
在 /Feel// 目录下是部分Demo,可以先尝试打开一个/.unity 的场景,点击Play后可以正常运行,并显示手机反馈效果,就表示Feel插件导入成功啦。
4.2 使用插件示例
使用Feel的流程简单分为两步:
第一步是通过建立列表,另一步则是触发播放效果。
现在开始来一步一步实现一个游戏对象受击的反馈。
我们在这个示意中将为游戏对象添加6个反馈效果:
受击击退反馈、受击闪白反馈、受击伤害飘字反馈、受击镜头摇晃反馈、受击音效反馈** 和 受击动画反馈**。
关于Feel还可以提供更多的反馈效果,这里就展示几种平时用的比较多的反馈模式方便学习。
4.2.1 准备工作
新建一个场景,在场景中创建一个空对象 Empty命名为Enemy,然后在此对象下创建一个胶囊体命名为。
此步骤的目的是使用该 对象 专门用来处理控制受击反馈的效果而不会影响到整个的Enemy对象。
为添加组件。
将的 Mode参数设置为Awake。
4.2.2 添加击退位移效果
为 添加一个击退的位移。
找到 ,点击 Add new ... -> ->
为 -> -> 绑定实体。
也就是说将场景中的对象拖到下图中 这个位置。
-> Mode 选择Along Curve,表示物体在 的时间内,根据 X/Y/Z下的曲线进行位移。
位移的幅度(曲线的[0,1]的范围)为[Remap Curve Zero, Remap Curve One]。
点击Unity的运行,在窗口选中,在窗口点击下的Play按钮,即可看到对象受击的位移反馈。
4.2.3 添加闪白效果
既然要闪白,我们就得先把对象变个颜色。
首先新建一个材质球名为,设置为 /
修改材质球的为黄色,勾选选项,将设为白色,设置为0。
将新的材质球赋给。
然后为添加一个组件。
修改 为 Float Value ,将Enemy赋给 ,将 Name改为,并新建一个,赋值如下图。
接下来我们在的 中添加新的 / 的反馈。
将赋给 Blink-> Blink,然后点击Grab From Blink ,它会将身上的的Phase 的配置自动同步。
点击Unity的运行,在窗口选中Enemy,在窗口点击MMF 下的Play按钮,即可看到方块受击的位移+闪白反馈。
4.2.4 添加飘字效果
在场景中新建一个空命名为,为其添加r组件。这个组件是创建飘字的工厂(池)。
为-> 附上一个飘字的。
可以直接用工程中已有的:/Feel////.
可以修改Spawn 的来改变飘字效果持续的时长。修改Spawn 来改变飘字的初始偏移。
可以修改 来调整飘字的移动距离。
可以修改 Scale来调整飘字的缩放, Color来调整字体的颜色,变色记得勾选 Color。
配置完成飘字生成器后,我们开始为Enemy的MMF 添加 UI-> 的反馈效果。
点击Unity的运行,在窗口选中,在窗口点击下的Play按钮,即可看到方块受击的位移+闪白反馈+飘字效果。
4.2.5 添加镜头摇晃
在场景中新建空命名为,在它之下建立空命名为,将Main 作为的子节点。
为添加组件。
会为附加添加上组件。
在组件中,我们勾选上,取消勾选 ,设置 Type为Noise。增加的振幅。
设置完成振动器后,我们为Enemy的添加新的/ Shake反馈效果。
配置镜头晃动的时间、振幅、频率和不同轴向上的振幅比例。
此时点击Unity的运行,在窗口选中,在窗口点击MMF 下的Play按钮,即可看到方块受击的位移+闪白反馈+飘字+镜头摇晃的效果。
4.2.6 添加受击音效
为 添加一个击退的声音反馈。
找到 ,点击 Add new ... -> Audio-> Sound
为 Sound添加音频片段,然后将改为
然后此时运行Unity选中该物体,在窗口点击下的Play按钮,即可看到对象受击的声音反馈。
4.2.7 添加动画控制效果
为 添加一个击退的动画效果。
找到 ,点击 Add new ... -> ->
动画受击效果所需条件:敌人身上需要有组件,且配套有相关的。
这里使用Feel插件里面一个有动画效果的敌人做测试,参数方面需要将敌人身上的拖到上,然后选择并输入。
这里的和Name是根据组件上实际的动画控制器中的配置决定的。
比如这个敌人预制体身上的动画组件中有三个动画片段:Idle、、
此时运行Unity,选中该物体,在窗口点击MMF 下的Play按钮,即可看到对象受击的动画反馈效果。
4.2.8 使用代码控制播放受击效果
上面讲了几种常用的受击效果预览,在实际的项目中则需要使用脚本和依赖逻辑进行控制受击效果的触发。
触发受击效果的代码也很简单,首先使用代码获取到组件,然后调用()方法即可执行Play触发配置好的受击效果。
private MMF_Player _enemyPlayer;private void Awake(){_enemyPlayer = GetComponent<MMF_Player>();}private void ClickTrigger(){if (_enemyPlayer){_enemyPlayer.PlayFeedbacks();}}
总结