当前位置:主页 > 查看内容

(Unity消防演练之灭火功能的前期准备)设计火势控制的脚本

发布时间:2021-07-13 00:00| 位朋友查看

简介:设计火势控制脚本为VR灭火功能做前期准备 由于unity的粒子系统Particle System我并不擅长,所以我用的火焰、烟雾粒子特效和一些音效都是从网上找的并不是自己制作。只是做了一些修改。毕竟从头创建一个粒子效果太费时间了可以根据自己的需要从网上找或者从Uni……

设计火势控制脚本(为VR灭火功能做前期准备)

由于unity的粒子系统Particle System我并不擅长,所以我用的火焰、烟雾粒子特效和一些音效都是从网上找的,并不是自己制作。只是做了一些修改。毕竟从头创建一个粒子效果太费时间了,可以根据自己的需要从网上找,或者从Unity自带的资源商店“Asset Store”里下载使用,我这里用的就是Unity Particle Pack5.x中的一部分,里面包含了大部分粒子特效,稍稍修改丰富一下就可以用的自己的项目中了,或者需要我使用的资源的话可以留言或私信我。
在这里插入图片描述
好了,开始正题:
导入火焰和烟雾粒子特效、火焰燃烧音效
将粒子特效资源导入项目中,找到火焰预制体拖入场景中,做微调:
在这里插入图片描述
将不需要的物体隐藏掉,布置好火源位置,“Fire”对象的“Box Collider”组件是将来实现灭火功能的要素,用于灭火器喷射粒子的碰撞,适当调整box collider的厚度,设置mesh renderer为非激活状态:
在这里插入图片描述
添加火焰音效:直接在“fire”对象上添加组件“Audio Source”把音频文件拖入,将“Play on awake”(自动播放)和“Loop(循环)”设置为"true"(勾选),将“spatial blend”(空间混合)设置为1使声音呈现完全的3D效果,将“3D sound setting(三维声音设置)”中的"Max distance"调小,设置40.距离火源40米以外无法听到着火的声音,进入40米的范围后,离火源越近火的声音越大,自己设置一个比较合理的值,用来模拟声音的范围,视实际情况而定吧

在这里插入图片描述
火势控制脚本的设计思路
实际情况中,火应该是受到灭火措施后逐渐熄灭的,所以定义一个生命值上限和一个生命值表示火势大小,定义一个熄灭系数和一个恢复系数,放在Update每帧计算出最新的生命值,根据生命值更新火势,赋值给火粒子系统,改变它的transform.localScale。为1时火最大,为0时火熄灭;定义一个可以修改灭火系数的公开函数,给后期灭火脚本调用。
代码实现
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
代码注释很明白了吧,就不一一解释了。
将脚本挂载到fire对象上,赋值,运行调整熄灭系数的值大于恢复系数,可以看到火势变小到熄灭的过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初步完成了火势控制的功能了,后面就是VR手柄拾取灭火器灭火了…

;原文链接:https://blog.csdn.net/qq_42437783/article/details/115700027
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐