コード例 #1
0
        protected override JobHandle StartGeneration(JobHandle dependOn)
        {
            if (sourceType == SourceType.FromTheme)
            {
                return(deferred ? deferredHandler.ScheduleDeferredJobs(SourceMeshData, Temps, dependOn) :
                       immediateHandler.ScheduleImmediateJobs(SourceMeshData, Temps, dependOn));
            }
            else if (sourceType == SourceType.FromMeshFilters)
            {
                MeshCache meshCache;
                NativeArray <DataInstance> dataInstances;
                MeshCache.CreateCombinationData(meshFilters, out meshCache, Allocator.TempJob, out dataInstances, Allocator.TempJob);

                Temps.Add(meshCache);
                Temps.Add(dataInstances);

                immediateHandler = new Immediate(dataInstances);
                return(immediateHandler.ScheduleImmediateJobs(meshCache.MeshData, Temps, dependOn));
            }
            else if (sourceType == SourceType.FromMeshesAndMatrices)
            {
                MeshCache meshCache;
                NativeArray <DataInstance> dataInstances;
                MeshCache.CreateCombinationData(meshes, matrices, out meshCache, Allocator.TempJob, out dataInstances, Allocator.TempJob);

                Temps.Add(meshCache);
                Temps.Add(dataInstances);

                immediateHandler = new Immediate(dataInstances);
                return(immediateHandler.ScheduleImmediateJobs(meshCache.MeshData, Temps, dependOn));
            }

            return(dependOn);
        }