/// <summary> /// Builds a lookup of <see cref="NativeMultiHashMap{TEntityGuidComponent, Entity}"/> for the target world. /// </summary> /// <remarks> /// This will run over ALL entities in the world. This is very expensive. /// </remarks> private static void BuildEntityLookups( EntityManager entityManager, EntityQuery entityQuery, NativeMultiHashMap <EntityGuid, Entity> entityGuidToEntity, NativeHashMap <Entity, EntityGuid> entityToEntityGuid) { var buildEntityGuidToEntity = new BuildComponentToEntityMultiHashMap <EntityGuid> { EntityType = entityManager.GetArchetypeChunkEntityType(), ComponentType = entityManager.GetArchetypeChunkComponentType <EntityGuid>(true), ComponentToEntity = entityGuidToEntity.AsParallelWriter() }.Schedule(entityQuery); var buildEntityToEntityGuid = new BuildEntityToComponentHashMap <EntityGuid> { EntityType = entityManager.GetArchetypeChunkEntityType(), EntityGuidComponentType = entityManager.GetArchetypeChunkComponentType <EntityGuid>(true), EntityToEntityGuid = entityToEntityGuid.AsParallelWriter() }.Schedule(entityQuery); JobHandle.CombineDependencies(buildEntityGuidToEntity, buildEntityToEntityGuid).Complete(); }
private static void BuildPrefabAndLinkedEntityGroupLookups( EntityManager entityManager, EntityQuery entityQuery, EntityQuery prefabQuery, EntityQuery linkedEntityGroupQuery, NativeHashMap <EntityGuid, Entity> entityGuidToPrefab, NativeHashMap <Entity, Entity> entityToLinkedEntityGroupRoot) { var buildPrefabLookups = new BuildComponentToEntityHashMap <EntityGuid> { EntityType = entityManager.GetArchetypeChunkEntityType(), ComponentType = entityManager.GetArchetypeChunkComponentType <EntityGuid>(true), ComponentToEntity = entityGuidToPrefab.AsParallelWriter() }.Schedule(prefabQuery); var buildLinkedEntityGroupLookups = new BuildLinkedEntityGroupHashMap { EntityToLinkedEntityGroupRoot = entityToLinkedEntityGroupRoot.AsParallelWriter(), LinkedEntityGroupType = entityManager.GetArchetypeChunkBufferType <LinkedEntityGroup>(true) }.Schedule(linkedEntityGroupQuery); JobHandle.CombineDependencies(buildPrefabLookups, buildLinkedEntityGroupLookups).Complete(); }
public ArchetypeChunkEntityType GetArchetypeChunkEntityType() { return(EntityManager.GetArchetypeChunkEntityType()); }