版本:Unity 6 (6000.0)
语言:English
使用自定义顶点流的粒子系统 GPU 实例化示例
粒子系统组件参考

将 C# Job System 集成到粒子系统工作流程中

一个 粒子系统一个组件,通过在场景中生成和动画大量的小型 2D 图像来模拟流体实体,例如液体、云和火焰。 更多信息
参见 术语表
可以使用 Unity 的 C# Job System 来对粒子应用自定义行为。

Unity 将工作从 C# Job System 分发到工作线程,并且可以利用 Burst 编译器。 GetParticles()SetParticles() 方法提供了类似的功能,但运行在主线程上,无法利用 Unity 的 Burst 编译器。

默认情况下,粒子系统作业只能访问属于该粒子系统的部分或所有粒子。Unity 使用 ParticleSystemJobData 结构体将此数据传递给作业。您必须将作业所需的任何其他数据作为附加参数传递。

为了访问粒子数据,Unity 支持以下作业类型

IJobParticleSystem

此作业类型在一个工作线程上执行单个作业。该作业可以访问属于粒子系统的每个粒子。有关此作业类型的示例代码,请参阅 IJobParticleSystem.Execute() 脚本参考。

IJobParticleSystemParallelFor

此作业类型在多个工作线程上执行多个作业。每个作业只能访问作业的 Execute() 函数指定的索引处的粒子。有关此作业类型的示例代码,请参阅 IJobParticleSystemParallelFor.Execute() 脚本参考。

IJobParticleSystemParallelForBatch

此作业类型在多个工作线程上执行多个作业。每个作业只能访问作业的 Execute() 函数指定的范围内的粒子。有关此作业类型的示例代码,请参阅 IJobParticleSystemParallelForBatch.Execute() 脚本参考。

Burst

与任何其他 C# 作业一样,您可以使用 Burst 编译器将粒子作业编译成高度优化的 Burst 作业。有关更多信息,请参阅 Burst 编译器文档

Unity 2019.3 中的新功能

使用自定义顶点流的粒子系统 GPU 实例化示例
粒子系统组件参考