Пример #1
0
        protected override JobHandle OnUpdate(JobHandle dependency)
        {
            EntityManager.AddComponent(m_MissingLodRequirement, typeof(LodRequirement));
            EntityManager.AddComponent(m_MissingRootLodRequirement, typeof(RootLodRequirement));

            var updateLodJob = new UpdateLodRequirementsJob
            {
                MeshLODGroupComponent = GetComponentDataFromEntity <MeshLODGroupComponent>(true),
                MeshLODComponent      = GetArchetypeChunkComponentType <MeshLODComponent>(true),
                LocalToWorldLookup    = GetComponentDataFromEntity <LocalToWorld>(true),
                LodRequirement        = GetArchetypeChunkComponentType <LodRequirement>(),
                RootLodRequirement    = GetArchetypeChunkComponentType <RootLodRequirement>(),
            };

            return(updateLodJob.Schedule(m_Group, dependency));
        }
        protected override JobHandle OnUpdate(JobHandle dependency)
        {
            //@TODO: Updating of LodRequirement & RootLodRequirement has to be push based,
            //       Otherwise how do we quickly early out when nothing has changed.

            var updateLodJob = new UpdateLodRequirementsJob
            {
                MeshLODGroupComponent = GetComponentDataFromEntity <MeshLODGroupComponent>(true),
                MeshLODComponent      = GetComponentTypeHandle <MeshLODComponent>(true),
                LocalToWorldLookup    = GetComponentDataFromEntity <LocalToWorld>(true),
                LodRequirement        = GetComponentTypeHandle <LodRequirement>(),
                RootLodRequirement    = GetComponentTypeHandle <RootLodRequirement>(),
            };

            return(updateLodJob.ScheduleParallel(m_LodRenderers, dependency));
        }