您现在的位置是:首页 >技术教程 >unity Ignis - Interactive Fire(完美模拟:森林火灾、草原火灾、建筑火灾)网站首页技术教程

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

野区捕龙为宠 2024-10-23 00:01:03
简介unity Ignis - Interactive Fire(完美模拟:森林火灾、草原火灾、建筑火灾)

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。