游戏蛮牛学习群(纯技术交流,不闲聊):539178957
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2282

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

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

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

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

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

6668

主题

7189

帖子

2万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
8960
威望
30
注册时间
2013-7-29
在线时间
3420 小时
最后登录
2018-8-14

社区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蛮牛粉丝
1479/1500
排名
25282
昨日变化
12

3

主题

736

帖子

1479

积分

Rank: 6Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

7日久生情
3136/5000
排名
2243
昨日变化
15

0

主题

2098

帖子

3136

积分

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

UID
219676
好友
1
蛮牛币
2437
威望
0
注册时间
2017-7-12
在线时间
462 小时
最后登录
2018-8-14

活力之星

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

回复

使用道具 举报

6蛮牛粉丝
1073/1500
排名
3447
昨日变化
1

1

主题

394

帖子

1073

积分

Rank: 6Rank: 6Rank: 6

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

回复

使用道具 举报

7日久生情
1574/5000
排名
1501
昨日变化

13

主题

212

帖子

1574

积分

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
700/1000
排名
6103
昨日变化
44

4

主题

234

帖子

700

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

7日久生情
2097/5000
排名
1188
昨日变化
8

21

主题

188

帖子

2097

积分

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

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

回复

使用道具 举报

7日久生情
2105/5000
排名
934
昨日变化
1

4

主题

152

帖子

2105

积分

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

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

回复 支持 反对

使用道具 举报

7日久生情
1831/5000
排名
1591
昨日变化
1

4

主题

307

帖子

1831

积分

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

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

回复

使用道具 举报

4四处流浪
359/500
排名
5630
昨日变化
4

0

主题

57

帖子

359

积分

Rank: 4

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

回复

使用道具 举报

7日久生情
1906/5000
排名
4247
昨日变化
2

0

主题

1334

帖子

1906

积分

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

UID
267381
好友
5
蛮牛币
3186
威望
0
注册时间
2018-2-1
在线时间
256 小时
最后登录
2018-8-6
发表于 2018-4-30 08:16:06 | 显示全部楼层
谢谢分享

回复

使用道具 举报

5熟悉之中
515/1000
排名
5585
昨日变化
1

2

主题

140

帖子

515

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

4四处流浪
367/500
排名
7920
昨日变化
7

0

主题

111

帖子

367

积分

Rank: 4

UID
42770
好友
0
蛮牛币
594
威望
0
注册时间
2014-8-30
在线时间
116 小时
最后登录
2018-8-10
发表于 2018-6-19 16:55:02 | 显示全部楼层
第一部分代码好乱啊

回复 支持 反对

使用道具 举报

3偶尔光临
253/300
排名
15872
昨日变化
7

0

主题

152

帖子

253

积分

Rank: 3Rank: 3Rank: 3

UID
277552
好友
0
蛮牛币
77
威望
0
注册时间
2018-4-17
在线时间
61 小时
最后登录
2018-7-11
发表于 2018-7-5 10:24:49 | 显示全部楼层
和我的方法差不多,不用刚体的方法不知道有没有

回复 支持 反对

使用道具 举报

4四处流浪
350/500
排名
11694
昨日变化
196

3

主题

204

帖子

350

积分

Rank: 4

UID
191995
好友
1
蛮牛币
737
威望
0
注册时间
2016-12-13
在线时间
67 小时
最后登录
2018-8-14
发表于 7 天前 | 显示全部楼层

回复

使用道具 举报

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

本版积分规则

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