Version: 2021.1
粒子系统 GPU 实例化
组件和模块

粒子系统 C# 作业系统集成

粒子系统可以使用 Unity 的 C# 作业系统来对粒子应用自定义行为。

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

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

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

IJobParticleSystem

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

IJobParticleSystemParallelFor

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

IJobParticleSystem

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

Burst

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

Unity 2019.3 中的新功能

粒子系统 GPU 实例化
组件和模块
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961