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

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

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

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

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

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

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

相关推荐
HAPPY酷2 分钟前
3A游戏图形设置终极优化指南:从通用法则到实战应用
java·前端·游戏
huwuhang3 分钟前
Switch游戏格式转换工具SAK Switch Army Knife .nsz .xcz解压及.nsp .xci转档工具下载
游戏·游戏机
达达爱吃肉3 分钟前
openclaw 4.2 飞书出图的bug
java·前端·数据库
lifewange7 分钟前
Ruby语言在测试领域的应用
开发语言·后端·ruby
lightqjx7 分钟前
【前端】前端学习二之CSS
前端·css·学习·html
IT东8 分钟前
Vue 多环境部署全解析:解决测试与生产一致性难题
前端·javascript·vue.js
chushiyunen10 分钟前
python实现分离不同人声、wespeaker
开发语言·python
y = xⁿ11 分钟前
【LeetCodehot100】:贪心算法:T121:买卖股票最佳时机 T55:跳跃游戏 T45:跳跃游戏2
算法·游戏·贪心算法
想不明白的过度思考者11 分钟前
SpringAOP:Java 三大代理模式:从静态代理到 JDK & CGLIB 动态代理
java·开发语言·代理模式
of Watermelon League12 分钟前
Redis 通用命令
前端·redis·bootstrap