Namespace Unity.XRTools.ModuleLoader
Classes
FunctionalityInjectionModule
Module responsible for managing Functionality Islands
FunctionalityIsland
Contains a collection of functionality providers which can be used to inject functionality on functionality subscribers. Injecting functionality involves calling ConnectSubscriber on providers indicated by IFunctionalitySubscriber<> with the subscriber as an argument, allowing the provider to set itself on the subscriber's provider property which can then be accessed via extension methods defined alongside the subscriber interface
FunctionalityIsland.DefaultProvider
Used for serializing preferred default provider types which should be chosen if more than one class implements the same provider interface
FunctionalityProviderMethods
Extension methods for all Functionality Providers
FunctionalitySubscriberMethods
Extension methods for all Functionality Subscribers
IUsesFunctionalityInjectionMethods
Extension methods for users of Functionality Injection
ImmortalModuleAttribute
Decorate a module which can never be deactivated
ModuleAssetCallbackOrderAttribute
Suggests the order for this module in the list of asset callback modules This affects the order in which asset callbacks are called
ModuleBehaviorCallbackOrderAttribute
Suggests the order for this module in the list of update modules This affects the order in which update is called
ModuleBuildCallbackOrderAttribute
Suggests the order for this module in the list of build callback modules This affects the order in which build callbacks are called
ModuleCallbacksBehaviour
Runtime hooks for ModuleLoader. One of these must be in any scene which depends on modules for it to function properly
ModuleLoaderCore
Core class for Module Loader package This is the entry point for loading modules and a hub for all callbacks and methods to access/control modules
ModuleLoaderCoreExtensionMethods
Extension methods for ModuleLoaderCore
ModuleLoaderDebugSettings
ScriptableSettings class for storing debug settings for Module Loader
ModuleOrderAttribute
Specifies the order for this module in the list of all modules
This affects the order in which Load and ConnectDependency are called, and the order of modules in ModuleLoaderCore.modules
ModuleSceneCallbackOrderAttribute
Suggests the order for this module in the list of scene callback modules This affects the order in which scene callbacks are called
ModuleUnloadOrderAttribute
Suggests the order for this module during unloading
ProviderSelectionOptionsAttribute
Specifies the priority level for this provider When the system automatically creates providers, it will use the priority value to sort the list of types which implement a particular provider interface, and activate the type with the highest priority value
Interfaces
IFunctionalityProvider
Provides functionality for an IFunctionalitySubscriber
IFunctionalitySubscriber
Provides a non-generic base for IFunctionalitySubscriber for collecting subscribers
IFunctionalitySubscriber<TProvider>
Provides a non-generic base for IFunctionalitySubscriber for collecting subscribers
IModule
Exposes this type to the system as a module that will be loaded when starting the app/editor
IModuleAssetCallbacks
Define this module as one that needs asset modification callbacks
IModuleBehaviorCallbacks
Define this module as one that needs behavior callbacks
These methods provide entry points for scene load and unload operations during MonoBehaviour callback phases,
i.e. using capabilities to create required providers
These methods are called by methods in ModuleLoaderCore of the same name on all modules, in the order specified
by their ModuleBehaviorCallbackOrderAttribute
. The recommended setup is to include a ModuleCallbacksBehaviour
in the scene which may optionally run in edit mode to provide MonoBehaviour callbacks in edit mode. The
ExecutionOrderSetter
class ensures that ModuleCallbacksBehaviour
has a very low execution order so that
these methods are called on modules before other MonoBehaviours in the scene. Some projects may need to tie
these updates to an existing MonoBehaviour or provide an alternative entry point for these methods.
IModuleBuildCallbacks
Define this module as one that needs build callbacks
IModuleDependency<T>
Exposes this type to the system as a module that will be loaded when starting the app/editor
IModuleSceneCallbacks
Define this module as one that needs scene management callbacks
IProvidesFunctionalityInjection
Defines the API for a Functionality Injection Provider This functionality provider is responsible for allowing other classes to use Functionality Injection
IUsesFunctionalityInjection
Provides a non-generic base for IFunctionalitySubscriber for collecting subscribers