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

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

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

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

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

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

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

相关推荐
知识分享小能手11 分钟前
Java学习教程,从入门到精通,JDBC数据库连接语法知识点及案例代码(92)
java·大数据·开发语言·数据库·学习·java开发·java后端开发
Flocx13 分钟前
联合体(Union)
开发语言·网络·c++·stm32
Rverdoser17 分钟前
使用Selenium进行网页自动化测试
前端·chrome
迂幵myself21 分钟前
14-1C++STL的初始
开发语言·c++
冰茶_23 分钟前
C# 并发和并行的区别--16
开发语言·学习·c#
Allen Bright25 分钟前
【JVM-9】Java性能调优利器:jmap工具使用指南与应用案例
java·开发语言·jvm
敲代码的小王!36 分钟前
前端入门(html)
前端·html
爱编程的鱼41 分钟前
HTML5教程(中)
前端·html·html5
艾斯特_1 小时前
2024年细讲前端工程化 万字总结!!
前端·javascript
风茫1 小时前
pnpm add 和 pnpm install 的区别?
前端