public void PatchEntitiesForPrefab(ManagedComponentStore managedComponentStore, Archetype *archetype, Chunk *chunk, int indexInChunk, int entityCount, EntityRemapUtility.SparseEntityRemapInfo *remapping, int remappingCount, Allocator allocator) { #if !NET_DOTS var managedPatches = archetype->ManagedEntityPatches; var managedPatchCount = archetype->ManagedEntityPatchCount; // Patch managed components with entity references. for (int p = 0; p < managedPatchCount; p++) { var componentType = managedPatches[p].Type; for (int e = 0; e != entityCount; e++) { var obj = managedComponentStore.GetManagedObject(chunk, componentType, e + indexInChunk); EntityRemapUtility.PatchEntityForPrefabInBoxedType(obj, remapping + e * remappingCount, remappingCount); } } UnsafeUtility.Free(remapping, allocator); #endif }
unsafe public EntityRemappingForPrefabAdapter(EntityRemapUtility.SparseEntityRemapInfo *remapInfo, int remapInfoCount) { RemapInfo = remapInfo; RemapInfoCount = remapInfoCount; }
public EntityRemappingVisitor(EntityRemapUtility.SparseEntityRemapInfo *remapInfo, int remapInfoCount) { _EntityRemapForPrefabAdapter = new EntityRemappingForPrefabAdapter(remapInfo, remapInfoCount); AddAdapter(_EntityRemapForPrefabAdapter); }