public override unsafe TrackableChanges <XRRaycast> GetChanges(XRRaycast defaultRaycast, Allocator allocator)
            {
                Assert.AreNotEqual(IntPtr.Zero, m_Self);
                NativeApi.AcquireChanges(m_Self,
                                         out XRRaycast * added, out int addedCount,
                                         out XRRaycast * updated, out int updatedCount,
                                         out TrackableId * removed, out int removedCount,
                                         out int elementSize);

                try
                {
                    return(new TrackableChanges <XRRaycast>(
                               added, addedCount,
                               updated, updatedCount,
                               removed, removedCount,
                               defaultRaycast, elementSize, allocator));
                }
                finally
                {
                    NativeApi.ReleaseChanges(added, updated, removed);
                }
            }