Beispiel #1
0
 internal static bool UnityARKit_EnvironmentProbeProvider_TryAddEnvironmentProbe(Pose pose,
                                                                                 Vector3 scale,
                                                                                 Vector3 size,
                                                                                 out XREnvironmentProbe environmentProbe)
 {
     environmentProbe = XREnvironmentProbe.GetDefault();
     return(false);
 }
            public override TrackableChanges <XREnvironmentProbe> GetChanges(XREnvironmentProbe defaultEnvironmentProbe,
                                                                             Allocator allocator)
            {
                XREnvironmentProbe probe = XREnvironmentProbe.GetDefault();

                NativeApi.UnityARCore_EnvironmentProbeProvider_GetChanges(out int numAdded, out int numUpdated, out int numRemoved, ref probe);

                // There is only ever one probe currently so allocating using it as the default template is safe.
                var changes = new TrackableChanges <XREnvironmentProbe>(numAdded, numUpdated, numRemoved, allocator, probe);

                if (numRemoved > 0)
                {
                    var nativeRemovedArray = changes.removed;
                    nativeRemovedArray[0] = probe.trackableId;
                }

                return(changes);
            }
Beispiel #3
0
            public override TrackableChanges <XREnvironmentProbe> GetChanges(XREnvironmentProbe defaultEnvironmentProbe,
                                                                             Allocator allocator)
            {
                int    numAddedEnvironmentProbes;
                IntPtr addedEnvironmentProbesPointer;

                int    numUpdatedEnvironmentProbes;
                IntPtr updatedEnvironmentProbesPointer;

                int    numRemovedEnvironmentProbeIds;
                IntPtr removedEnvironmentProbeIdsPointer;

                int stride;

                var context = EnvironmentProbeApi.UnityARKit_EnvironmentProbeProvider_AcquireChanges(out numAddedEnvironmentProbes, out addedEnvironmentProbesPointer,
                                                                                                     out numUpdatedEnvironmentProbes, out updatedEnvironmentProbesPointer,
                                                                                                     out numRemovedEnvironmentProbeIds, out removedEnvironmentProbeIdsPointer,
                                                                                                     out stride);

                try
                {
                    unsafe
                    {
                        // Wrap the navite pointers into a native array and then copy them into a separate native array enabled
                        // with temporary allocations.
                        return(new TrackableChanges <XREnvironmentProbe>(
                                   (void *)addedEnvironmentProbesPointer, numAddedEnvironmentProbes,
                                   (void *)updatedEnvironmentProbesPointer, numUpdatedEnvironmentProbes,
                                   (void *)removedEnvironmentProbeIdsPointer, numRemovedEnvironmentProbeIds,
                                   defaultEnvironmentProbe, stride,
                                   allocator));
                    }
                }
                finally
                {
                    EnvironmentProbeApi.UnityARKit_EnvironmentProbeProvider_ReleaseChanges(context);
                }
            }
 internal static extern void UnityARCore_EnvironmentProbeProvider_GetChanges(out int numAdded, out int numUpdated, out int numRemoved, ref XREnvironmentProbe outProbe);
Beispiel #5
0
 internal static extern bool UnityARKit_EnvironmentProbeProvider_TryAddEnvironmentProbe(Pose pose,
                                                                                        Vector3 scale,
                                                                                        Vector3 size,
                                                                                        out XREnvironmentProbe environmentProbe);
Beispiel #6
0
 public override bool TryAddEnvironmentProbe(Pose pose, Vector3 scale, Vector3 size, out XREnvironmentProbe environmentProbe)
 {
     return(EnvironmentProbeApi.UnityARKit_EnvironmentProbeProvider_TryAddEnvironmentProbe(pose, scale, size, out environmentProbe));
 }