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);
 }