Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

Оптимизация Particle System с помощью системы заданий C#

Particle System может использовать C# Job System Unity, чтобы применять к частицам пользовательское поведение.

Unity распределяет работу системы заданий C# между рабочими потоками и может использовать Burst Compiler. Методы GetParticles() и SetParticles() предоставляют сходную функциональность, но выполняются в основном потоке и не могут использовать Burst Compiler в Unity.

По умолчанию задание Particle System имеет доступ только к одной или нескольким частицам, принадлежащим к Particle System. Unity передает эти данные заданию с помощью ParticleSystemJobData структура. Любые другие данные, нужные заданию, необходимо передать дополнительными параметрами.

Для доступа к данным частиц Unity поддерживает следующие типы заданий:

IJobParticleSystem

Этот тип задания выполняет одно задание на одном рабочем потоке. Задание имеет доступ ко всем частицам, принадлежащим Particle System. Пример кода для этого типа задания см. в IJobParticleSystem.Execute() Справочник по скриптам.

IJobParticleSystemParallelFor

Этот тип задания выполняет множество заданий через множество рабочих потоков. Каждое задание может получить доступ только к частице с индексом, указанным функцией Execute() задания. Пример кода для этого типа задания см. в IJobParticleSystemParallelFor.Execute() Справочник по Скриптам.

IJobParticleSystemParallelForBatch

Этот тип задания выполняет несколько заданий через несколько рабочих потоков. Каждое задание может получить доступ только к частицам в диапазоне, указанном функцией Execute() задания. Пример кода для этого типа задания см. в IJobParticleSystemParallelForBatch.Execute() Справочник по скриптам.

Burst

Как и в случае любого другого задания C#, вы можете использовать Компилятор Burst для компиляции ваших заданий частиц в высокооптимизированные задания Burst. Дополнительные сведения см. в документации Компилятора Burst.