using System; namespace UnityEngine.XR.ARSubsystems { /// /// The descriptor of the that shows which features are available on that XRSubsystem. /// /// /// You use register a subsystem with the global SubsystemManager. /// public sealed class XRParticipantSubsystemDescriptor : SubsystemDescriptor { /// /// The capabilities of a particular . This is typically /// used to query a subsystem for capabilities that may vary by platform or implementation. /// [Flags] public enum Capabilities { /// /// The implementation has no /// additional capabilities other than the basic, required functionality. /// None = 0, } /// /// The capabilities provided by this implementation. /// public Capabilities capabilities { get; private set; } /// /// Register a subsystem implementation. /// This should only be used by subsystem implementors. /// /// The name of the specific subsystem implementation. /// The of the specific subsystem implementation. public static void Register(string subsystemId, Capabilities capabilities) where T : XRParticipantSubsystem { SubsystemRegistration.CreateDescriptor(new XRParticipantSubsystemDescriptor(subsystemId, typeof(T), capabilities)); } XRParticipantSubsystemDescriptor(string subsystemId, Type subsystemType, Capabilities capabilities) { id = subsystemId; subsystemImplementationType = subsystemType; this.capabilities = capabilities; } } }