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

设计火势控制脚本(为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手柄拾取灭火器灭火了…

  • 31
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周的Unity小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值