public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) { // For all chunks where trans has changed since start of simulation // Copy trans to currentTrans if (ChangeVersionUtility.DidChange(chunk.GetComponentVersion(rotationType), simStartComponentVersion)) { // Transform was interpolated by the rendering system var curRot = chunk.GetNativeArray(curRotationType); var rot = chunk.GetNativeArray(rotationType); // FIXME: use a memcopy since size and layout must be identical for (int ent = 0; ent < curRot.Length; ++ent) { curRot[ent] = new CurrentSimulatedRotation { Value = rot[ent].Value }; } } }
public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) { var curRot = chunk.GetNativeArray(curRotationType); var rot = chunk.GetNativeArray(rotationType); var entity = chunk.GetNativeArray(entityType); // FIXME: use a memcopy since size and layout must be identical for (int ent = 0; ent < curRot.Length; ++ent) { var cr = rot[ent]; curRot[ent] = new CurrentSimulatedRotation { Value = cr.Value }; commandBuffer.AddComponent(chunkIndex, entity[ent], new PreviousSimulatedRotation { Value = cr.Value }); } }