internal JobHandle Schedule(EntityQuery entityQuery, ComponentSystemBase system, JobHandle jobHandle) { size = entityQuery.CalculateEntityCount(); if (capacity < size) { // Extend capacity if needed capacity = size; values = new float[capacity]; buffer.Dispose(); buffer = new ComputeBuffer(capacity, sizeof(float)); handler.Dispose(); handler = GCHandle.Alloc(values, GCHandleType.Pinned); } return(prevJobHandle = new FillArrayJob { sizeOfValue = SizeOfValue, dynamicType = system.GetArchetypeChunkComponentTypeDynamic(ComponentType.ReadOnly <BoneIndexOffset>()), defaultValue = UnsafeUtility.AddressOf(ref defaultValue), dst = (void *)handler.AddrOfPinnedObject(), }.Schedule(entityQuery, jobHandle)); }