前言

因为工作上的功能,查询到该插件;下载后最终也未选择该插件,不过这里将学习的过程分享一下,方便后来者学习;感觉这个插件已经停止更新了,不过该插件还是很强大的;不知道是否真的能通过该插件实现宣传视频的效果,个人感觉花一定的时间可能可以实现。

宣传效果

unity推流支持几种模式 unity 流体插件_Unity软体效果

unity推流支持几种模式 unity 流体插件_Unity软体效果_02

插件效果

unity推流支持几种模式 unity 流体插件_右键_03


unity推流支持几种模式 unity 流体插件_Unity软体效果_04


unity推流支持几种模式 unity 流体插件_右键_05

unity推流支持几种模式 unity 流体插件_右键_06

安装插件

只需要将.unitypackage文件拖入工程即可。

导入成功后,顶部菜单会多出一个NVIDIA选项:

unity推流支持几种模式 unity 流体插件_Unity布料效果_07

可以添加组件和创建资源。

而Project窗口的右键也会多出一个NVIDIA选项:

unity推流支持几种模式 unity 流体插件_右键_08

可以创建Assets。

插件使用

在工程的Assets\NVIDIA\Flex Samples 目录下会有案例的,可以直接快速查看:

unity推流支持几种模式 unity 流体插件_Unity流体插件_09

Assets\NVIDIA\Flex\Actors目录下就是各种效果的组件脚本:

unity推流支持几种模式 unity 流体插件_Unity软体效果_10

Assets\NVIDIA\Flex\Assets 目录下是各种效果的资源脚本:

unity推流支持几种模式 unity 流体插件_unity推流支持几种模式_11

其中最特殊的就是FlexContainer资源,基本每种效果组件的脚本都需要一个FlexContainer资源,类似于效果容器资源,可在Project窗口内右键 > Create > NVIDIA > Flex > Flex Container创建:

unity推流支持几种模式 unity 流体插件_Unity软体效果_12

FlexContainer资源属性如图:

unity推流支持几种模式 unity 流体插件_Unity布料效果_13

可以设置最大粒子数量,单个粒子的属性、全局重力、布料属性、流体属性等。

这里我们就尝试两种效果。

软体

在Assets\NVIDIA\Flex Samples\4. Soft Actor\Scene 场景下制作。

在Project窗口内右键 > Create > NVIDIA > Flex > FlexSoftAsset新建了FlexSoftAsset,软体Boundary Mesh选Cube:

unity推流支持几种模式 unity 流体插件_Unity流体插件_14

并新建了空节点,新增Flex Soft Actor组件,关联了新建的New FlexSoftAsset 和之前的Flex Container:

unity推流支持几种模式 unity 流体插件_unity推流支持几种模式_15

操作后发现之前的柱体消失了,只有新建的Cube:

unity推流支持几种模式 unity 流体插件_Unity软体效果_16

我尝试了将新建一个Flex Container,在Project窗口内右键 > Create > NVIDIA > Flex > Flex Container创建,并将NewFlexSoftActor的Container设置为新建的Flex Container,现在就正常了:

unity推流支持几种模式 unity 流体插件_unity推流支持几种模式_17

按上面的测试,就是说不同的Flex Soft Actor需要不同的Flex Container,不然有一个将不会生成。

流体

在Assets\NVIDIA\Flex Samples\9. Fluid Renderer\Scene 场景下进行测试,该场景下的FlexSourceActor实现了一个流体的源头,可以不断的产生水流:

unity推流支持几种模式 unity 流体插件_右键_18

这里新增的一个水体,新建一个FlexArrayAsset资源,并选择Boundary Mesh为Cube:

unity推流支持几种模式 unity 流体插件_Unity流体插件_19

新建一个FlexArrayActor节点,并新增FlexArrayActor和FlexFluidRenderer组件,FlexArrayActor表示伸缩的群体对象,FlexFluidRenderer用于渲染为流体。将原有的Flex Container和新建的FlexArrayAsset关联到FlexArrayActor组件上:

unity推流支持几种模式 unity 流体插件_Unity布料效果_20

之后查看运行效果:

unity推流支持几种模式 unity 流体插件_Unity软体效果_21

这么看又可以共用一个Flex Container ,现在完全摸不着头脑了。

总结

这个插件现在感觉还是不适合用于项目,还有一点,它可能只适用于英伟达显卡的PC平台(这点是猜测的,没验证过),移动平台是不可能的。只出过一个Beta测试版本,之后在Assetstore也已经下架了,所以,测试玩玩还可以,其它要慎重。也会存在各种报错(但可以正常运行):

unity推流支持几种模式 unity 流体插件_unity推流支持几种模式_22

还有一点它的很多代码是加密的,对于程序员来说一些效果的控制我也没找到,不知道如何进行编码控制。当然也很期待它能完善后商用,应该会很强。