(Unity消防演练之灭火功能的前期准备)设计火势控制的脚本
目录
- 设计火势控制脚本(为VR灭火功能做前期准备)
- **导入火焰和烟雾粒子特效、火焰燃烧音效**
- **火势控制脚本的设计思路**
- **代码实现**
设计火势控制脚本(为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手柄拾取灭火器灭火了…
(Unity消防演练之灭火功能的前期准备)设计火势控制的脚本相关推荐
- VR开发之使用VRTK实现拾取和手柄扣下扳机触发事件(Unity灭火器灭火功能的实现)
目录 unity毕设之消防演练灭火功能的实现 **导入灭火器模型和喷射效果粒子系统** **为被拾取的物体添加组件[VRTK_Interactable Object]组件:** **为左右控制器添加可 ...
- VR消防演练方案提高自身消防意识的技能水平
大多数引发火灾的原因源于生活中对安全防范意识的缺乏,其中因违反电气安装使用规定.用火不慎.吸烟等引发火灾.在火灾事故中最常见,日常生活中,一次小小的疏忽都可能酿成一场火灾.消防若能够提前在虚拟世界里演 ...
- 计算机中心消防演练,计算中心消防应急逃生演练预案
为加强广大师生员工对消防安全的认识,进一步提高计算中心全体员工和上课学生对突发火灾情况下的疏散逃生.组织及应急处置能力,使广大师生员工掌握应急逃生的基本常识和自救措施,计算中心拟于11月27日中午11 ...
- 计算机系公寓消防演练,学生公寓管理中心开展消防应急疏散演练
为保障学生在公寓内的生命财产安全,切实把安全工作落到之处,增强消防意识,提高逃生.自救.自护能力,培养员工.学生突遇火灾时的生存.逃生.自救互救技能,本着"安全第一.预防为主"的思 ...
- 综合演练 实现登陆功能 1124
综合演练 实现登陆功能 1124 目标 本项目需要有两个窗体, 其中第1个窗体用于登录,如果登录成功,那么跳转到第2个窗体, 在第2个窗体当中,显示用户的一些简单的信息,作为登录成功的一个模拟. 如果 ...
- 基于51单片机火灾报警器设计智能火灾报警系统(水泵灭火功能)项目设计与制作
背景: 以51单片机为主控芯片,以DS18B20为温度传感器,利用红色led灯代表空调加热,绿色led灯作为空调降温的控制.lcd1602显示温度值. 要求: [1]控制芯片使用51单片机(STC89 ...
- Unity简单实现图片墙功能
Unity简单实现图片墙功能 前言 在做之前公司的项目中,我做过很多实现照片墙效果的功能.其中我觉得我做的效果比较好而且比较有难度的就是雀巢项目中的那个仿照apple watch拖拽效果实现的那个照片 ...
- Unity实现OCR文字识别功能
文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程h ...
- 【Unity实现背包拖拽功能 】
Unity实现背包拖拽功能 可以实现背包拖拽交换位置.合成 等一系列功能的实现 using System; using System.Collections; using System.Collect ...
最新文章
- 第九课.Python文件操作
- linux登陆连接信息,成功登录后Linux关闭连接
- PMP-【第5章 项目范围管理】-2021-1-27(116页-135页)
- 使用WireShark简单分析ICMP报文
- 数据结构实验之栈与队列五:下一较大值(一)
- java blob转file_人工智能-Object Detection API 模型转tflite并验证
- [C/C++基础知识] 面试再谈struct和union大小问题
- [Qt教程] 第40篇 网络(十)WebKit初识
- python模块之paramiko学习二
- @Value和Hibernate问题
- java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 解决方案
- 工行高级经理林承军:工行基于 MySQL 构建分布式架构的转型之路
- puzzles —— 111、222、333、444、555、666、777、888、999
- 《深入浅出WPF》——事件学习
- 利用excel制作二维码
- 士不可以不弘毅,任重而道远
- 数学符号Span的含义
- 近期工作心得(总结篇)
- 管理每日日程提醒以及待办清单的备忘便签有哪些
- Mac下安装多个版本的JDK并随意切换
热门文章
- 《最优状态估计-卡尔曼,H∞及非线性滤波》:第7章 卡尔曼滤波的扩展
- 寻找子树和子孙树 ,家谱树
- Unhandled exception at 0x000007FEFD5C9E5D in OpenCV3.3_TestDemo.exe: Microsoft C++ exception: cv::Ex
- 同一个局域网怎么计算机共享打印机,如何在同一个局域网内将多台计算机连接到 USB 共享打印机,实现共同打印...
- 天融信EDR 彻底卸载方法
- 解决WIN8主题下载后安装不了的情况
- 期货不变的本质是什么意思(期货不变的本质是什么意思呀)
- 原创_Android Jetpack Compose 最全上手指南,互联网寒冬公司倒闭后
- 2022-2028全球碳纤维山地自行车行业调研及趋势分析报告
- SSH 详解(实践及应用)