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

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

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

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

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

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

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

相关推荐
我的golang之路果然有问题7 分钟前
mac M系列芯片 unity 安装会遇到的错误以及解决
经验分享·学习·macos·unity·游戏引擎
拜晨11 分钟前
使用motion实现小宇宙贴纸墙效果
前端·交互设计
梦想平凡15 分钟前
情怀源代码工程实践(加长版 1/3):确定性内核、事件回放与最小可运行骨架
开发语言·javascript·ecmascript
拜晨21 分钟前
使用motion实现小宇宙节目广场的效果
前端·交互设计
笑我归无处25 分钟前
强引用、软引用、弱引用、虚引用详解
java·开发语言·jvm
02苏_25 分钟前
秋招Java面
java·开发语言
ytttr87333 分钟前
64QAM信号的数字预失真处理(MATLAB实现)
开发语言·matlab
Nebula_g38 分钟前
C语言应用实例:硕鼠游戏,田忌赛马,搬桌子,活动选择(贪心算法)
c语言·开发语言·学习·算法·游戏·贪心算法·初学者
爱吃甜品的糯米团子1 小时前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript