using Unity.Collections; using UnityEngine.SubsystemsImplementation; namespace UnityEngine.XR.ARSubsystems { /// /// Base class for subsystems that detect and track things in the physical environment. /// /// The trackable's data, often a blittable type to inter-operate with native code. /// Concrete subsystem deriving from TrackingSubsystem. /// The subsystem descriptor for the underlying subsystem. /// Provider type for the TrackingSubsystem-derived subsystem. public abstract class TrackingSubsystem : SubsystemWithProvider where TTrackable : struct, ITrackable where TSubsystem : SubsystemWithProvider, new() where TSubsystemDescriptor : SubsystemDescriptorWithProvider where TProvider : SubsystemProvider { /// /// Retrieves a set of changes (additions, updates, and removals) since the last /// time was called. This is typically called /// once per frame to update the derived class's internal state. /// /// The Allocator to use when creating the NativeArrays in . /// The set of changes since the last time this method was invoked. public abstract TrackableChanges GetChanges(Allocator allocator); } }