public override unsafe TrackableChanges <XRRaycast> GetChanges(
                XRRaycast defaultRaycast,
                Allocator allocator)
            {
                int   addedLength, updatedLength, removedLength, elementSize;
                void *addedPtr, updatedPtr, removedPtr;
                var   context = UnityARCore_raycast_acquireChanges(
                    out addedPtr, out addedLength,
                    out updatedPtr, out updatedLength,
                    out removedPtr, out removedLength,
                    out elementSize);

                try
                {
                    return(new TrackableChanges <XRRaycast>(
                               addedPtr, addedLength,
                               updatedPtr, updatedLength,
                               removedPtr, removedLength,
                               defaultRaycast, elementSize,
                               allocator));
                }
                finally
                {
                    UnityARCore_raycast_releaseChanges(context);
                }
            }
            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);
                }
            }
Beispiel #3
0
 public override TrackableChanges <XRRaycast> GetChanges(XRRaycast defaultRaycast, Allocator allocator)
 {
     throw new System.NotImplementedException();
 }
 public override bool TryAddRaycast(Vector2 screenPoint, float estimatedDistance, out XRRaycast sessionRelativeData)
 {
     return(UnityARCore_raycast_tryAddRaycast(screenPoint, estimatedDistance, out sessionRelativeData));
 }
 static unsafe extern bool UnityARCore_raycast_tryAddRaycast(
     Vector2 screenPoint,
     float estimatedDistance,
     out XRRaycast raycastOut);
 public override unsafe TrackableChanges <XRRaycast> GetChanges(XRRaycast defaultRaycast, Allocator allocator)
 {
     if (m_Self == IntPtr.Zero)
     {
         return(default);
 public override bool TryAddRaycast(Ray ray, float estimatedDistance, out XRRaycast sessionRelativeData)
 {
     Assert.AreNotEqual(IntPtr.Zero, m_Self);
     return(NativeApi.TryAddRaycast(m_Self, ray.origin, ray.direction, estimatedDistance, out sessionRelativeData));
 }