关于游戏当中击退/击飞效果的制作

关于游戏当中击退/击飞效果的制作

在游戏当中我们免不了会有一些炫酷的效果,特别是RPG游戏,比如放一个技能,直接大范围杀伤,然后把敌人全部击飞或者击退,那效果真的很舒服。把自己想象成武林高手,一套江湖失传已久的降龙十八掌打的他们落花流水。咳咳,跑题了。那么游戏中的这些效果,我们用unity开发游戏的时候,能不能也可以实现出来呢?当然是可以的。我这里做了一个坦克大战的案例,里面就有炮弹爆炸把坦克炸飞的效果。一起来看看吧,上效果图。

这个效果我截了好几次了,哈哈。我们可以从图中看到坦克被炸飞了,爆炸边缘的坦克也被余波击退了。这是模拟出来的效果,和商业游戏有些差距,不要在意这些细节哦。那么这个效果怎么做的呢?其实也是比较简单的。

首先我们先讲下原理,像坦克大战这种游戏,我们一般要做的逼真点,就需要用到物理引擎系统。在这里我们用刚体来模拟重力等一系列的物体物理属性,然后爆炸效果怎么做呢,这个呢就是刚体组件里面有一个方法,叫做添加爆炸力。我们可以用这个来模拟。看名字就知道是可以做的。OK,做法如下,首先我们让坦克按键发射炮弹,然后炮弹接触了其他的任何物体就发生爆炸,现实中也是如此吧。然后爆炸的时候,这个时候我们就在爆炸的那个点,产生一个蘑菇云(特效),关键的点来了,实质的爆炸物理效果怎么做呢?我们在产生蘑菇云的同时,也在这里创建一个球形的碰撞区域,这区域就是爆炸范围,然后再遍历这个区域,如果这个区域内用携带刚体组件的物体,那就让他们飞。哈哈,怎么飞呢?给他们添加爆炸力。当然其中有些细节需要注意,不然你就算用了这个函数,也是没有效果的。这里先把代码发下,然后再说需要注意的一些细节。

这就是击飞效果主要点了,圈出来的地方,第一处就是模拟一个爆炸范围的函数,第二个就是添加爆炸力的函数,有了这个两个,坦克就可以被炸飞了。现在来说下值得注意的一点,模拟爆炸范围的函数,没什么要说的,就是模拟一个球形,参数就是圆心和半径。添加爆炸力的函数就是给带有刚体的物体添加一个力,第一个参数就是力的大小,然后第二个参数就是爆炸中点,第三个就是爆炸的半径大小,根据这个半径,越靠近爆炸中心就会受到越大的力。嗯,这些都不是重点,重点是最后一个参数,如果你默认不填,那么就只有击退效果,没有击飞效果。最后一个参数的意义就是它的爆炸权重吧,暂且这么叫它。官方注释是说"调整爆炸的的位置,让它看起来像是在上升",这个值为正就会被抛向空中。

OK,本次的分享就到这里了

相关推荐
掘金安东尼21 小时前
让 JavaScript 更容易「善后」的新能力
前端·javascript·面试
掘金安东尼21 小时前
用 HTMX 为 React Data Grid 加速实时更新
前端·javascript·面试
灵感__idea1 天前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
yinuo1 天前
轻松接入大语言模型API -04
前端
袋鼠云数栈UED团队1 天前
基于 Lexical 实现变量输入编辑器
前端·javascript·架构
cipher1 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
UrbanJazzerati1 天前
非常友好的Vue 3 生命周期详解
前端·面试
AAA阿giao1 天前
从零构建一个现代登录页:深入解析 Tailwind CSS + Vite + Lucide React 的完整技术栈
前端·css·react.js
兆子龙1 天前
像 React Hook 一样「自动触发」:用 Git Hook 拦住忘删的测试代码与其它翻车现场
前端·架构
兆子龙1 天前
用 Auto.js 实现挂机脚本:从找图点击到循环自动化
前端·架构