unity Ignis - Interactive Fire(完美模拟:森林火灾、草原火灾、建筑火灾)

news2024/11/26 21:44:19

 Ignis 可以把任何物体、植被或带皮带骨的网状物转换为可燃物体,它就会自动着火。然后,火焰可以蔓延,点燃其他物体,被粒子或光线熄灭,或者自然烧尽。也可以被粒子点燃。还会收到风力影响WindZone。

WindZone文档:

粒子特效碰撞检测参考:unity3d粒子碰撞检测,判断例子碰撞到物体_unity粒子系统碰撞检测_野区捕龙为宠的博客-CSDN博客

官方文档:入门 - 阿字节支持 (arctibyte.com)

官方下载地址:Ignis - Interactive Fire - URP/HDRP | Particles/Effects | Unity Asset Store 

 演示效果:

1.导入Ignis - Interactive Fire 包(官方收费)

2.导入Visual Effect Graph包(免费)下面是:Visual Effect Graph对应unity版本(不对应会出什么问题,我没有试过,有兴趣的可以去试试)

Unity 2019.3+ (Visual effects 7.3.1+)
URP/HDRP (7.3.1+)
Unity 2019.3.15 (Visual effects 7.3.1)
Unity 2019.4.11 (Visual effects 7.3.1)
Unity 2020.1.8 (Visual effects 8.2)
Unity 2020.2.0 (Visual effects 10.+)
注意请勿使用 Visual effects 10.4.0,可能不支持

3.如果打开Demo 场景没有 火焰 和 丢失着色器问题。
打开目录文件OAVA-Flame/VFX ,双击所有文件,并关闭。即可(应该是初始化,没仔细研究过)

4.到目前为止,我们就可以看到官方的效果了。

5.创建自己的 燃烧物体
首先在场景创建一个cube,然后再unity菜单栏点击GameObject—
OAVA-Convert下面有多个选项分别对应:
flammable Object   实体对象
flammable Vegetation  野草植被对象
flammable tree       树对象
flammable Skinnt mesh  蒙皮
效果上 燃烧的的方式不一样
选中cube 再选择上面任意一种可燃方式, cube自动添加 flammable Object类 ,然后勾选 setThisOnFireOnStart,物体就会自动燃烧。如下图

 6.代码去调用燃烧,以下两种都可以:

flammableObject.setThisOnFireOnStart = true  flammableObject.TryToSetOnFire(transform_.transform.position,1f);

下面方法等同于Time.timeScale = 0 ,只不过只暂停火,场景其他物体无效。

  1. 调用 FlameEngine.instance.PauseFlames() 以暂停
  2. 调用 FlameEngine.instance.ResumeFlames() 以恢复

7.燃烧控制(可以自己去测试效果)

下图第一个是:燃烧时长

第二个是:耗尽长度

8.粒子特效碰撞 点燃物体

被点燃的物体cube必须添加上可燃类(flammable Object),粒子特效必须添加勾选Collision

Type选择World,并勾选上Send Collision Messages(发送碰撞消息)。

以上选择完,运行  飞出去的粒子 碰到cube ,cube就会被点燃。

9.粒子特效收风力WindZone影响

给粒子效果添加下的ExternalForces启用即可

10.风力影响 WindZone(自己研究吧)

风吹过去的火  无法点燃物体,需要用自己的粒子特效去实现。

11.不支持移动端,webGL端(局限有点大),我只测试了webGL端是不可以的。

测试的dome场景:Built-in-RP_Sample

官方给了三个场景:Built-in-RP_Sample、HDRP_SampleScene、URP_Sample

12.官方提供了很多功能,需要自己去研究,基础的东西大家还是阅读官方文档,里面写的很清楚!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻量级性能测试工具 wrk 如何使用?

项目设计之初或者是项目快要结束的时候,大佬就会问我们,这个服务性能测试的结果是什么,QPS 可以达到多少,RPS 又能达到多少?接口性能可以满足未来生产环境的实际情况吗?有没有自己测试过自己接口的吞吐量&a…

磁盘详解(一文搞懂磁盘)

目录 一.磁盘的结构 二.磁盘的分类 2.1按照磁头是否可以移动分类 2.2按照盘片是否可以更换分类 三.磁盘的读写过程 四.磁盘的调度 4.1FCFS先来先服务算法 4.2SSTF最短寻找时间优先 4.3 SACN扫描算法 4.4C-SACN循环扫描算法 4.5 SPTF(最短定位时间优先&…

Maxwell安装使用

​欢迎光临我的博客查看最新文章: https://river106.cn 1、Maxwell简介 Maxwell 是由美国Zendesk开源,用Java编写的MySQL实时抓取软件。读取 MySQL binlogs 并将修改行字段的更新写入 Kafka, Kinesis, RabbitMQ, Google Cloud Pub/Sub 或 Redis (Pub/Sub or LPUSH)…

基于Aidlux的停车标志检测(可修改为coco 80类目标检测)

●项目名称 基于Aidlux的停车标志检测(可修改为coco 80类目标检测) ●项目简介 本项目在Aidlux上部署检测停车标志检测,并可在源码上修改coco 80类目标检测索引直接检测其他79类目标,可以直接修改、快速移植到自己的项目中。 ●…

【学习笔记】Java——消息队列kafka

kafka 1、Kafka combines three key capabilities:2、kafka是如何工作的:3、Kafka APIS:4、kafka集群 1、Kafka combines three key capabilities: To publish (write) and subscribe to (read) streams of events, including co…

中国游戏等“春”来

对于游戏行业来说,2023年将是压力依旧的一年,但或许也是转型调优的希望之年。 压力在于,互联网流量见顶,用户付费意愿降低,行业整体进入下行周期,彻底进入存量竞争时代。《2022年中国游戏产业报告》显示&a…

相机标定实战之双目标定

相机标定原理 文章目录 相机标定原理前言一、采集图像二、基于Matlab单双目标定流程采集棋盘图 三、基于OpenCV-Python双目标定流程检测棋盘格角点对角点进行亚像素精细化单目标定双目标定双目校正保存标定参数读取标定参数代码示例 参考 前言 相机标定可以说是计算机视觉/机器…

哪个公司的 CEO 不想拥有一个自己的数字克隆?

⚠️ FBI Warning:本文纯属作者自娱自乐,数字人的观点不代表 CEO 本人的观点,请大家不要上当受骗!! 哪个公司的 CEO 不想拥有一个自己的数字克隆? 想象🤔一下,如果 CEO 数字克隆上线…

python基础语法总结

1.打印输出 print(“Hello World”) 在许多大众的编程语言中,需要在每个语句的末尾添加分号,但Python并非如此。Python是一种简洁的编程语言,你不需要添加不必要的字符和语法。在Python中,一条语句结束于一行的结尾(方括号&…

找不到msvcp120dll,无法继续执行代码的修复方法

本教程操作系统:Windows系统、 msvcp120.dll是电脑文件中的dll文件(动态链接库文件)。如果计算机中丢失了某个dll文件,可能会导致某些软件和游戏等程序无法正常启动运行,并且导致电脑系统弹窗报错。 msvcp120.dll文件…

IDEA整合GO并创建module工程

IDEA整合Go 安装包环境配置idea配置并创建test mode 安装包 1.去官网下载对应还的安装包 官网下载地址 我选择下载的window 版本: 直接按照对应的目录,然后点击下一步 环境配置 1.配置go环境变量 在高级环境变量PAHT中添加安装包的**/bin 目录&…

mysql数据库的基础

mysql数据库 一、数据库的基本概念二、关系数据库三、SQL语句增改查删 四、natvicat for mysql软件 一、数据库的基本概念 数据(data) 描述事物的符号记录包括数字、文字、图形、图像、声音、档案记录等以“记录”形式按统一的格式进行存储 表&#x…

基于Java少儿编程网上报名系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

sizeof 和 strlen !!!

定义 sizeof()是单目操作符,是可以求变量(类型)所占空间的大小,不在乎内存中存放的是什么,只在乎内存大小 strlen()是函数,是计算字符串的长度的 它从内存的某个位置(可以是字符串开头&#x…

进程管道:pipe调用

在看过高级的popen函数之后&#xff0c;我们再来看看底层的pipe函数。通过这个函数在两个程序之间传递数据不需要启动一个shell来解释请求的命令。它同时还提供了对读写数据的更多控制。pipe函数的原型如下所示&#xff1a; #include <unistd.h> int pipe(int pipefd[2])…

OS的事件机制-Event

Event在OSEK OS中&#xff0c;其实就是一个flag的作用&#xff0c;如果某个TASK执行了&#xff0c;就调用<SetEvent()>把flag就置起来&#xff0c;和这个task关联的另一个TASK也执行了&#xff0c;就可以把flag清掉<ClearEvent>&#xff0c;如果第一个TASK没有执行…

这才是你想了解的Redis

文章简介 redis作为一个基于内存的数据结构存储系统&#xff0c;由于它的灵活性和可拓展性强&#xff0c;在我们日常开发中经常被用作数据库、缓存或者消息代理。本文就从Redis的基本部署使用说到Redis的集群、锁和消息对列 Redis基本使用 一、安装 下载地址&#xff1a;htt…

mySql 储存过程 多个结果返回解析

当需要查询复杂的数据模型并返回多个结果集时&#xff0c;使用 MySQL 存储过程可以有效地优化性能。同时&#xff0c;在开发中使用 Mybatis 可以方便地调用 MySQL 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 MySQL 存储过程&#xff0c;并获取多个结果集。 1、…

Java并发之原子类

一、原子类简介 1 什么是原子类 Java中提供了一些原子类&#xff0c;原子类包装了一个变量&#xff0c;并且提供了一系列对变量进行原子性操作的方法。原子性的意思是对于一组操作&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败&#xff0c;不能只有其中某几个执…

基础知识学习---牛客网C++面试宝典(三)C/C++基础之面向对象

1、本栏用来记录社招找工作过程中的内容&#xff0c;包括基础知识学习以及面试问题的记录等&#xff0c;以便于后续个人回顾学习&#xff1b; 暂时只有2023年3月份&#xff0c;第一次社招找工作的过程&#xff1b; 2、个人经历&#xff1a; 研究生期间课题是SLAM在无人机上的应…