Class XRLoaderHelper
XR Loader abstract subclass used as a base class for specific provider implementations. Class provides some helper logic that can be used to handle subsystem handling in a typesafe manner, reducing potential boilerplate code.
Inherited Members
Namespace: UnityEngine.XR.Management
Syntax
public abstract class XRLoaderHelper : XRLoader
Fields
m_SubsystemInstanceMap
Map of loaded susbsystems. Used so we don't always have to fo to XRSubsystemManger and do a manual search to find the instance we loaded.
Declaration
protected Dictionary<Type, ISubsystem> m_SubsystemInstanceMap
Field Value
Type | Description |
---|---|
Dictionary<Type, ISubsystem> |
Methods
CreateIntegratedSubsystem<TDescriptor, TSubsystem>(List<TDescriptor>, String)
Creates a native, integrated subsystem given a list of descriptors and a specific subsystem id. DEPRECATED: Please use the geenric CreateSubsystem method. This method is soley retained for backwards compatibility and will be removed in a future release.
Declaration
[Obsolete("This method is obsolete. Please use the geenric CreateSubsystem method.", false)]
protected void CreateIntegratedSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id)
where TDescriptor : IntegratedSubsystemDescriptor where TSubsystem : IntegratedSubsystem
Parameters
Type | Name | Description |
---|---|---|
List<TDescriptor> | descriptors | List of TDescriptor instances to use for subsystem matching. |
String | id | The identifier key of the particualr subsystem implementation being requested. |
Type Parameters
Name | Description |
---|---|
TDescriptor | The descriptor type being passed in. |
TSubsystem | The subsystem type being requested |
CreateStandaloneSubsystem<TDescriptor, TSubsystem>(List<TDescriptor>, String)
Creates a managed, standalone subsystem given a list of descriptors and a specific subsystem id. DEPRECATED: Please use the geenric CreateSubsystem method. This method is soley retained for backwards compatibility and will be removed in a future release.
Declaration
[Obsolete("This method is obsolete. Please use the generic CreateSubsystem method.", false)]
protected void CreateStandaloneSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id)
where TDescriptor : SubsystemDescriptor where TSubsystem : Subsystem
Parameters
Type | Name | Description |
---|---|---|
List<TDescriptor> | descriptors | List of TDescriptor instances to use for subsystem matching. |
String | id | The identifier key of the particualr subsystem implementation being requested. |
Type Parameters
Name | Description |
---|---|
TDescriptor | The descriptor type being passed in. |
TSubsystem | The subsystem type being requested |
CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor>, String)
Creates a subsystem given a list of descriptors and a specific subsystem id.
You should make sure to destroy any subsystem that you created so that resources acquired by your subsystems are correctly cleaned up and released. This is especially important if you create them during initialization, but initialization fails. If that happens, you should clean up any subsystems created up to that point.
Declaration
protected void CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id)
where TDescriptor : ISubsystemDescriptor where TSubsystem : ISubsystem
Parameters
Type | Name | Description |
---|---|---|
List<TDescriptor> | descriptors | List of TDescriptor instances to use for subsystem matching. |
String | id | The identifier key of the particualr subsystem implementation being requested. |
Type Parameters
Name | Description |
---|---|
TDescriptor | The descriptor type being passed in. |
TSubsystem | The subsystem type being requested |
Deinitialize()
Override of Deinitialize() to provide for clearing the instance map.true
If you override this method in your subclass, you must call the base implementation to allow the instance map tp be cleaned up correctly.
Declaration
public override bool Deinitialize()
Returns
Type | Description |
---|---|
Boolean | True if de-initialization was successful. |
Overrides
DestroySubsystem<T>()
Destroy a subsystem instance of a given type. Subsystem assumed to already be loaded from a previous call to CreateSubsystem
Declaration
protected void DestroySubsystem<T>()
where T : class, ISubsystem
Type Parameters
Name | Description |
---|---|
T | A subclass of ISubsystem |
GetLoadedSubsystem<T>()
Gets the loaded subsystem of the specified type. Implementation dependent as only implemetnations know what they have loaded and how best to get it..
Declaration
public override T GetLoadedSubsystem<T>()
where T : class, ISubsystem
Returns
Type | Description |
---|---|
T | The loaded subsystem or null if not found. |
Type Parameters
Name | Description |
---|---|
T | Type of the subsystem to get. |
Overrides
StartSubsystem<T>()
Start a subsystem instance of a given type. Subsystem assumed to already be loaded from a previous call to CreateSubsystem
Declaration
protected void StartSubsystem<T>()
where T : class, ISubsystem
Type Parameters
Name | Description |
---|---|
T | A subclass of ISubsystem |
StopSubsystem<T>()
Stop a subsystem instance of a given type. Subsystem assumed to already be loaded from a previous call to CreateSubsystem
Declaration
protected void StopSubsystem<T>()
where T : class, ISubsystem
Type Parameters
Name | Description |
---|---|
T | A subclass of ISubsystem |