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

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

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

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

By default, a Particle System job only has access to one or more particles belonging to that Particle System. Unity passes this data to the job using a ParticleSystemJobData struct. You must pass any other data that the job requires as additional parameters.

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

IJobParticleSystem

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

[IJobParticleSystemParallelFor(../ScriptReference/ParticleSystemJobs.IJobParticleSystemParallelFor.html)

This job type executes multiple jobs across multiple worker threads. Each job can only access the particle at the index specified by the job’s Execute() function. For example code on this job type, see the IJobParticleSystemParallelFor.Execute() Scripting reference.

[IJobParticleSystemParallelForBatch(../ScriptReference/ParticleSystemJobs.IJobParticleSystemParallelForBatch.html)

This job type executes multiple jobs across multiple worker threads. Each job can only access the particles within the range specified by the job’s Execute() function. For example code on this job type, see the IJobParticleSystemParallelForBatch.Execute() Scripting reference.

Burst

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

Unity 2019.3 中的新功能

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