private unsafe void WriteEvent(LowLevel.CollisionEvent collisionEvent, ref BlockStream.Writer collisionEventWriter) { int numContactPoints = collisionEvent.NumNarrowPhaseContactPoints; int size = UnsafeUtility.SizeOf <LowLevel.CollisionEvent>() + numContactPoints * UnsafeUtility.SizeOf <ContactPoint>(); collisionEventWriter.Write(size); byte *eventPtr = collisionEventWriter.Allocate(size); ref LowLevel.CollisionEvent eventRef = ref UnsafeUtilityEx.AsRef <LowLevel.CollisionEvent>(eventPtr);