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

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

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

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

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

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

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

相关推荐
ConardLi1 分钟前
前端程序员原地失业?全面实测 Gemini 3.0,附三个免费使用方法!
前端·人工智能·后端
木子李BLOG38 分钟前
Element Plus
前端·javascript·vue.js
Miketutu43 分钟前
【大屏优化秘籍】Element UI El-Table 表格透明化与自定义行样式实战
前端·javascript·vue.js
止水编程 water_proof1 小时前
JavaScript基础
开发语言·javascript·ecmascript
rainboy1 小时前
Flutter :自己动手,封装一个小巧精致的气泡弹窗库
前端·flutter·github
合作小小程序员小小店1 小时前
web网页开发,在线%人力资源管理%系统,基于Idea,html,css,jQuery,java,jsp,ssh,mysql。
java·前端·css·数据库·mysql·html·intellij-idea
小小测试开发1 小时前
JMeter JSR223预处理程序高级用法:解锁自动化测试的灵活性上限
开发语言·jmeter·groovy
Ace_31750887761 小时前
拼多多商品详情接口深度解析:从加密参数破解到数据全量获取
前端·数据库·github
std78791 小时前
用PYTHON实现俄罗斯方块游戏案例
python·游戏·pygame