Unity3D:粒子系统 C# 作业系统集成
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
粒子系统 C# 作业系统集成
粒子系统可以使用 Unity 的 C# 作业系统来对粒子应用自定义行为。
Unity 从 C# 作业系统跨工作线程分发工作,并且可以利用 Burst 编译器。GetParticles() 和 SetParticles() 方法提供类似的功能,但在主线程上运行,并且无法使用 Unity 的 Burst 编译器。
默认情况下,粒子系统作业只能访问属于该粒子系统的一个或多个粒子。Unity 使用 ParticleSystemJobData 结构将此数据传递给作业。必须将作业所需的任何其他数据作为附加参数传递。
为访问粒子数据,Unity 支持以下作业类型:
IJobParticleSystem
此作业类型在单个工作线程上执行单个作业。此作业可以访问属于粒子系统的每个粒子。有关此作业类型的示例代码,请参阅 IJobParticleSystem.Execute() 脚本参考。
[IJobParticleSystemParallelFor(../ScriptReference/ParticleSystemJobs.IJobParticleSystemParallelFor.html)
此作业类型跨多个工作线程执行多个作业。每个作业只能访问作业的 Execute() 函数指定的索引处的粒子。有关此作业类型的示例代码,请参阅 IJobParticleSystemParallelFor.Execute() 脚本参考。
[IJobParticleSystemParallelForBatch(../ScriptReference/ParticleSystemJobs.IJobParticleSystemParallelForBatch.html)
此作业类型跨多个工作线程执行多个作业。每个作业只能访问作业的 Execute() 函数指定的范围内的粒子。有关此作业类型的示例代码,请参阅 IJobParticleSystemParallelForBatch.Execute() 脚本参考。
Burst
与任何其他 C# 作业一样,您可以使用 Burst 编译器将粒子作业编译为高度优化的 Burst 作业。有关更多信息,请参阅 Burst 编译器文档。
由3D建模学习工作室整理翻译,转载请注明出处!