public void OnDestroy() { UnsafeUtility.Free(m_Entities, Allocator.Persistent); m_Entities = null; m_EntitiesCapacity = 0; UnsafeUtility.Free(m_ComponentTypeOrderVersion, Allocator.Persistent); m_ComponentTypeOrderVersion = null; }
public void OnCreate(int capacity) { m_EntitiesCapacity = capacity; m_Entities = (EntityData *)UnsafeUtility.Malloc(m_EntitiesCapacity * sizeof(EntityData), 64, Allocator.Persistent); m_EntitiesFreeIndex = 0; InitializeAdditionalCapacity(0); #if USE_BURST_DESTROY if (ms_DeallocateDataEntitiesInChunkDelegate == null) { ms_DeallocateDataEntitiesInChunkDelegate = DeallocateDataEntitiesInChunk; ms_DeallocateDataEntitiesInChunkDelegate = Burst.BurstDelegateCompiler.CompileDelegate(ms_DeallocateDataEntitiesInChunkDelegate); } #endif const int componentTypeOrderVersionSize = sizeof(int) * TypeManager.MaximumTypesCount; m_ComponentTypeOrderVersion = (int *)UnsafeUtility.Malloc(componentTypeOrderVersionSize, UnsafeUtility.AlignOf <int>(), Allocator.Persistent); UnsafeUtility.MemClear(m_ComponentTypeOrderVersion, componentTypeOrderVersionSize); }