Version: 6000.3
语言: 中文
粒子系统力场(Particle System Force Field) 组件参考
从动画系统访问粒子系统

使用 C# 作业系统优化粒子系统

一个粒子系统通过在场景中生成大量小型 2D 图像并为其设置动画来模拟流体实体(如液体、云和火焰)的组件。更多信息
请参阅术语表
可以使用 Unity 的 C# 作业系统将自定义行为应用于粒子。

Unity 将 C# 作业系统中的工作分布在工作线程之间,并且可以使用突发编译器。GetParticles()SetParticles() 方法提供类似的功能,但在主线程上运行,无法使用 Unity 的 Burst Compiler。

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

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

IJob粒子系统

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

IJobParticleSystemParallelFor

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

IJob粒子系统并行批次

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

爆裂

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

Unity 2019.3 中的新功能

粒子系统力场(Particle System Force Field) 组件参考
从动画系统访问粒子系统