예제 #1
0
        unsafe public static JobHandle Schedule <T>(this T jobData, ParticleSystem ps, int minIndicesPerJobCount, JobHandle dependsOn = new JobHandle()) where T : struct, IJobParticleSystemParallelFor
        {
            var scheduleParams = CreateScheduleParams(ref jobData, ps, dependsOn, ParticleSystemParallelForJobStruct <T> .Initialize());
            var handle         = JobsUtility.ScheduleParallelForDeferArraySize(ref scheduleParams, minIndicesPerJobCount, ps.GetManagedJobData(), null);

            ps.SetManagedJobHandle(handle);
            return(handle);
        }
        internal static IntPtr GetReflectionData <T>()
            where T : struct, IJobParticleSystemParallelFor
        {
            ParticleSystemParallelForJobStruct <T> .Initialize();

            var reflectionData = ParticleSystemParallelForJobStruct <T> .jobReflectionData.Data;

            ParticleSystemJobUtility.CheckReflectionDataCorrect(reflectionData);
            return(reflectionData);
        }
 public static void EarlyJobInit <T>()
     where T : struct, IJobParticleSystemParallelFor
 {
     ParticleSystemParallelForJobStruct <T> .Initialize();
 }
        public static JobHandle Schedule <T>(this T jobData, ParticleSystem ps, int minIndicesPerJobCount, JobHandle dependsOn = default(JobHandle)) where T : struct, IJobParticleSystemParallelFor
        {
            JobsUtility.JobScheduleParameters jobScheduleParameters = IParticleSystemJobExtensions.CreateScheduleParams <T>(ref jobData, ps, dependsOn, ParticleSystemParallelForJobStruct <T> .Initialize());
            JobHandle jobHandle = JobsUtility.ScheduleParallelForDeferArraySize(ref jobScheduleParameters, minIndicesPerJobCount, ps.GetManagedJobData(), null);

            ps.SetManagedJobHandle(jobHandle);
            return(jobHandle);
        }