파티클 시스템은 Unity의 C# 잡 시스템을 사용하여 파티클에 커스텀 동작을 적용할 수 있습니다.
Unity는 C# 잡 시스템의 작업을 워커 스레드에 분산하며 버스트 컴파일러를 사용할 수 있습니다. GetParticles() 및 SetParticles() 메서드는 유사한 기능을 제공하지만 메인 스레드에서 실행되며 Unity의 버스트 컴파일러를 사용할 수 없습니다.
기본적으로 파티클 시스템 잡은 해당 파티클 시스템에 속한 하나 이상의 파티클에만 액세스할 수 있습니다. Unity는 이 데이터를 ParticleSystemJobData 구조체를 사용하여 잡에 전달합니다. 잡에 필요한 기타 데이터를 추가 파라미터로 전달해야 합니다.
파티클 데이터에 액세스할 수 있도록 Unity는 다음의 잡 유형을 지원합니다.
이 잡 유형은 단일 워커 스레드에서 단일 잡을 실행합니다. 이 잡은 파티클 시스템에 속한 모든 파티클에 액세스할 수 있습니다. 이 잡 유형의 예시 코드는 IJobParticleSystem.Execute() 스크립팅 레퍼런스를 참조하십시오.
이 잡 유형은 여러 워커 스레드에서 여러 개의 잡을 실행합니다. 각 잡은 잡의 Execute() 함수에 의해 지정된 인덱스에서만 파티클에 액세스할 수 있습니다. 이 잡 유형의 예시 코드는 IJobParticleSystemParallelFor.Execute() 스크립팅 레퍼런스를 참조하십시오.
이 잡 유형은 여러 워커 스레드에서 여러 개의 잡을 실행합니다. 각 잡은 잡의 Execute() 함수에 의해 지정된 범위 내의 파티클에만 액세스할 수 있습니다. 이 잡 유형의 예시 코드는 IJobParticleSystemParallelForBatch.Execute() 스크립팅 레퍼런스를 참조하십시오.
다른 C# 잡과 마찬가지로 버스트 컴파일러를 사용하여 파티클 잡을 고도로 최적화된 버스트 잡으로 컴파일할 수 있습니다. 자세한 내용은 버스트 컴파일러 기술 자료를 참조하십시오.
Unity 2019.3의 새로운 기능