我收到了很多反馈,我的游戏(FEED THE AI)看起来非常光鲜,并且非常好玩。
我觉得我已经有很多经验,所以我决定分享一下我如何做到这一点。为了实现这一点,我打算分解一下实际发生的事情,即你如何击败敌人并从中获取数据。
第一印象似乎非常简单。你简单地点击按钮,直到敌人死去,然后,当敌人死时,就会有一些来自敌人到中间球的粒子效果。这就是所有事情了。
但实际上,事情更复杂。要是单看上面所说的就是简单,不足以让玩家感觉到这一切。但实际上,这里有很多小细节让它看起来非常令人满意。其中大部分利用粒子系统和DoTween。DoTween在这里非常重要,因为你只要用一行代码就可以让它看到动态变化。我使用一个叫做Toon FX的动画效果作为基本资产,并且我非常清楚知道如何微调它来适应我的需求。
作为一道提醒,我使用粒子效果主要是因为我无法绘制动画。
击中方块
- 你有一个球,击中敌人,但只能在一定范围内,表示为简单的圆形精灵。
- 在上面我有一个粒子系统,精心打造圆形效果,每次攻击它都会盖满。
- 当 ничего没有被击中的时候,我使用一个声音效果;当有东西被击中的时候,还有另一个声音效果,很重要的是需要在攻击每次触发时使声音效果触发,并非在每次击中时触发,否则会有重叠的声效,并且会听起来很差。
- 我有一个canvas有一个显示攻击冷却图像的地方。
当击中敌人时,四件事情发生
- 敌人的生命条减少,这可以通过改变材质参数来显示。
- 使用DoTween,敌人会有一点抖动,仅需一行代码(gfx.DOShakeScale(0.2f, 1);即可完成)。
- 敌人会被轻微推开,通过计算球体和敌人的向量,并在rb.AddForce函数上调用它。
- 在它上面会浮现伤害文本。(如果有很多浮在空中的文本,那么保持在一个canvas上会有好处,否则会有大量的绘制调用。)
当敌人死亡时,三件事情会发生
- 敌人会被销毁。
- 会有一个死亡粒子效果,浮在空中大约0.2-0.4秒。
- 会有一个数据粒子效果飞向球体。它只是一个粒子系统,在球体方向移动,但是它的实现不同于直接寻找球体的位置,我使用了Perlin噪音来进行寻找。这个粒子会向球体四周发出圆形效果,可以看到它的位置随机变化,并且会随机延长生命长度。
当数据粒子效果击中球体时,六件事情会发生
- 粒子效果会被抹消。
- 会发出一种数据收集声效,音频呈现随机变调,这在重复使用声音时很重要。
- 在球体周围会有一个几乎看不见的强光粒子效果。
- 另一个粒子系统会发出一个方形的粒子效果,这个粒子会飞到球体上。
- 球体的位置会有一个小幅的变化,每次都像弹簧一样,它会受到粒子效果而受到影响,并随后再次回到中间。
- 你的收益和进度会被更新,并在同时展现出来。
当进度被更新时
- 球体周围的条带会渐渐填满,而不仅仅是填满,而是增加了弹簧效果,做到更“弹簧”般的效果。
- 球体每次进度变化后都会轻微膨胀。
- 在球体周围的白色方格粒子效果数量会增加。
- 这些粒子效果的速度会增加,使得它能够充满球体周围。
当AI升级时
*所有球的粒子效果都会被抹消。
* 在球体上会有一个巨大的白色闪电粒子效果。
* 整个关卡都会有一个微妙的冲击波粒子系统产生。
* 整个关卡都会充满光亮。
* 最后,球体进度会重置,并再次从基础值开始变化。
这是一个墙壁的文本,你不知道会变得这么长lol
希望能让哪怕只有一个人能够在自己的项目中改进游戏质感。
TL;DR
让所有的东西都反应在不同的动作上。让所有的东西都听起来更“弹”更“轻”的感觉,即使这个效果听起来微不足道,它总是对游戏的感觉有很大的影响。
这是在实现游戏质感时,不是靠一两件大技而是靠众多小事儿。
要成为朋友的最好的插件是DoTween。
评论 (0)