开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2212

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 878|回复: 11

[士郎] FPS游戏实战之手榴弹爆炸效果实现

[复制链接]  [移动端链接]
排名
3
昨日变化

6378

主题

6892

帖子

2万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
2775
威望
30
注册时间
2013-7-29
在线时间
3267 小时
最后登录
2018-5-25

社区QQ达人活力之星原创精华达人突出贡献奖财富之证游戏蛮牛QQ群会员蛮牛妹VIP

发表于 2018-4-27 10:13:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
上一篇文章已经跟大家分享了扔手雷的功能实现(点击此处

那么这一篇文章就来写扔玩手雷之后的爆炸效果,先来看一下实现的效果.


1.1.gif

可以发现物体的受力根据离爆炸源中心的距离来决定,这就比较符合我们的爆炸物理模型了,那么我们就把这个效果定下来,接下来就来讲解一下如何实现这个效果.,
首先创建几个3Dobject,具体长什么样子看自己喜欢,
然后给他们添加一个刚体跟碰撞器,
1.jpg

这样就可以了,接下来写个方法,在手雷爆炸的时候调用,
[AppleScript] 纯文本查看 复制代码
 void Boom()[/color][/align][/align][align=left][color=#006000]
[/color][/align]
[align=center][align=left][color=rgb(26, 26, 26)]    {[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]        //这里的transform即手雷本身.[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]        Collider[] _boomObj =  Physics.OverlapSphere(transform.position, 15);[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]        foreach(Collider i in _boomObj)[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]        {[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]            Rigidbody _rig = i.GetComponent<Rigidbody>();[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]            if (_rig != null&& _rig.transform != transform)[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]            {[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]                _rig.AddExplosionForce(1500f, transform.position, 15,10f);[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]            }[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]        }[/color][/align][/align]
[align=center][align=left][color=rgb(26, 26, 26)]    }



首先先用Physics里面相交球这个方法,取出手雷爆炸半径内的所以带有碰撞器的物体,
public static Collider[] OverlapSphere(Vector3 position, float radius);
Position即球的圆心,
Radius即球的范围.

然后再去遍历,筛选出受力的物体,(注意:遍历时应避免闭包的影响,在这里我定义了一个新的变量_rig 来存储跟筛选而不是用到临时变量 i ),最后给他们身上的刚体施加一个爆炸力即可.

这里施加爆炸力的方法是Unity封装好的,直接调用即可:

[AppleScript] 纯文本查看 复制代码
public void AddExplosionForce(float explosionForce,
                              Vector3 explosionPosition,
                              float explosionRadius,
                              [DefaultValue("0.0F")] float upwardsModifier, 
                              [DefaultValue("ForceMode.Force")] ForceMode mode);


这是一个带有五个参数的函数,其中两个是带默认值的参数.

explosionForce是力的大小,
explosionPosition是施加力的位置,
explosionRadius是力的作用范围.
upwardsModifier是调节爆炸出现的位置,跟explosionPosition的区别在于,修改这个值他的中心跟影响半径不会被修改.默认为0的情况下,中爆炸中心到刚体的质量中心力的方向是线性的,

假如这个值为2时,就是他爆炸出现的实际位置在中心点想下2个单位.

Mode代表应用到目标力的方式.
OK,效果到这里就已经实现完了,比较简单,就几行代码.主要就是看你对Unity物理这一块的掌握程度.



知乎@代码律动


跟我念“站长妹纸萌萌哒!”我说站长,你说YO!爱你们么么哒~
回复

使用道具 举报

6蛮牛粉丝
1377/1500
排名
31738
昨日变化
14

3

主题

699

帖子

1377

积分

Rank: 6Rank: 6Rank: 6

UID
63377
好友
0
蛮牛币
12
威望
0
注册时间
2014-12-24
在线时间
668 小时
最后登录
2018-5-21
发表于 2018-4-27 11:25:59 | 显示全部楼层
RPG,玩法的创新突破,不断突破游戏世界的边界,

回复 支持 反对

使用道具 举报

7日久生情
2687/5000
排名
2969
昨日变化
14

0

主题

1888

帖子

2687

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
0
蛮牛币
2480
威望
0
注册时间
2017-7-12
在线时间
367 小时
最后登录
2018-5-25

活力之星

发表于 2018-4-27 11:37:29 | 显示全部楼层
谢谢分享

回复

使用道具 举报

6蛮牛粉丝
1007/1500
排名
3552
昨日变化
15

1

主题

379

帖子

1007

积分

Rank: 6Rank: 6Rank: 6

UID
173098
好友
0
蛮牛币
16
威望
0
注册时间
2016-9-30
在线时间
265 小时
最后登录
2018-5-25
发表于 2018-4-27 11:38:49 | 显示全部楼层
谢谢。。。。。。。。。。。。。。。。。。。。。。。。。。。
[发帖际遇]: tscanyang 在论坛发帖时没有注意,被小偷偷去了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1462/1500
排名
1615
昨日变化
6

13

主题

199

帖子

1462

积分

Rank: 6Rank: 6Rank: 6

UID
191997
好友
2
蛮牛币
4732
威望
0
注册时间
2017-2-22
在线时间
536 小时
最后登录
2018-5-25
发表于 2018-4-27 11:39:19 | 显示全部楼层
贫穷限制了我的想象,表示第一段不知道干嘛的
[发帖际遇]: xyy123 在论坛发帖时没有注意,被小偷偷去了 2 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

4四处流浪
385/500
排名
9487
昨日变化
130

1

主题

133

帖子

385

积分

Rank: 4

UID
268047
好友
0
蛮牛币
693
威望
0
注册时间
2018-2-7
在线时间
141 小时
最后登录
2018-5-25
发表于 2018-4-27 14:37:49 | 显示全部楼层
谢谢分享!!!

回复

使用道具 举报

7日久生情
1903/5000
排名
1379
昨日变化
5

21

主题

188

帖子

1903

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
145607
好友
1
蛮牛币
3406
威望
0
注册时间
2016-4-15
在线时间
892 小时
最后登录
2018-5-25
发表于 2018-4-27 14:55:21 | 显示全部楼层
不错不错

回复

使用道具 举报

7日久生情
2068/5000
排名
911
昨日变化

4

主题

151

帖子

2068

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
64697
好友
1
蛮牛币
5667
威望
0
注册时间
2014-12-30
在线时间
877 小时
最后登录
2018-5-25
发表于 2018-4-27 15:21:40 | 显示全部楼层
我都等不急了,,,快,把雷扔到自己脚下试试
[发帖际遇]: 一个袋子砸在了 282100640 头上,282100640 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

7日久生情
1703/5000
排名
1630
昨日变化

4

主题

291

帖子

1703

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
98190
好友
2
蛮牛币
3323
威望
0
注册时间
2015-5-7
在线时间
706 小时
最后登录
2018-5-24
发表于 2018-4-27 17:14:41 | 显示全部楼层
谢谢分享!。。。

回复

使用道具 举报

4四处流浪
344/500
排名
5624
昨日变化
5

0

主题

55

帖子

344

积分

Rank: 4

UID
56994
好友
0
蛮牛币
774
威望
0
注册时间
2014-11-22
在线时间
75 小时
最后登录
2018-5-24
发表于 2018-4-27 17:20:29 | 显示全部楼层
谢谢分享!。。。
[发帖际遇]: 零碎记忆 在论坛发帖时没有注意,被小偷偷去了 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1426/1500
排名
6228
昨日变化
33

0

主题

1059

帖子

1426

积分

Rank: 6Rank: 6Rank: 6

UID
267381
好友
3
蛮牛币
2324
威望
0
注册时间
2018-2-1
在线时间
177 小时
最后登录
2018-5-26

迈向小康

发表于 2018-4-30 08:16:06 | 显示全部楼层
谢谢分享

回复

使用道具 举报

4四处流浪
366/500
排名
6913
昨日变化
3

2

主题

94

帖子

366

积分

Rank: 4

UID
252889
好友
1
蛮牛币
1146
威望
0
注册时间
2017-11-6
在线时间
106 小时
最后登录
2018-5-24
QQ
发表于 2018-5-9 16:09:56 | 显示全部楼层
感谢分享
[发帖际遇]: YaYaxueYu 在论坛发帖时没有注意,被小偷偷去了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表