Skip to main content
Version: 11 Nov 2025

MLAutoAPISingleton

NameSpace: MagicLeap

MLAutoAPISingleton class contains a template for singleton APIs More...

Inherits from:
MLLazySingleton< T >

Detailed Description​

public template <T > class MLAutoAPISingleton : MLLazySingleton< T > 

Template Parameters:

  • T The type of the class to create a singleton for.

Public Fields​

IsStarted​

Indicates if the API has started successfully.


public static bool IsStarted { get; set; }


Protected Methods​

Initialize​

This is the only way to initialize this class.

protected virtual sealed override void Initialize()

Reimplements: Initialize


OnApplicationFocus​

Callback sent to all MagicLeap APIs on application focus event.

protected virtual void OnApplicationFocus(
bool hasFocus
)

Parameters

TypeNameDescription
boolhasFocusTrue if the application has focus, else False.

OnApplicationPause​

Callback sent to all MagicLeap APIs on application pause.

protected virtual void OnApplicationPause(
bool pauseStatus
)

Parameters

TypeNameDescription
boolpauseStatusTrue if the application is paused, else False.

Reimplemented by: OnApplicationPause, OnApplicationPause, OnApplicationPause, OnApplicationPause, OnApplicationPause, OnApplicationPause, OnApplicationPause


OnDeviceActive​

Callback sent to all MagicLeap APIs when device enters active mode.

protected virtual void OnDeviceActive()

OnDeviceReality​

Callback sent to all MagicLeap APIs when device enters reality mode.

protected virtual void OnDeviceReality()

OnDeviceStandby​

Callback sent to all MagicLeap APIs when device enters standby mode.

protected virtual void OnDeviceStandby()

StartAPI​

Do API-specific creation/initialization of ML resources for this API, such as creating trackers, etc. Called automatically the first time Instance is accessed. Error checking on the return value is performed in the base class.

protected virtual abstract MLResult.Code StartAPI()

Reimplemented by: StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI, StartAPI


StopAPI​

API-specific cleanup. Will be called whenever MLDevice is destroyed (at the latest, when the application is shutting down). Error checking on the return value is performed in the base class.

protected virtual abstract MLResult.Code StopAPI()

Reimplemented by: StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI, StopAPI


Update​

Update function that will run once per Unity frame.

protected virtual void Update()

Reimplemented by: Update, Update, Update


Protected Attributes​

APILock​

Lock used to keep api calls synchronous.


protected readonly object APILock = new object();


DllNotFoundError​


protected readonly string DllNotFoundError = $"Failed to start {typeof(T).Name} API. This API is only available on device or when running inside the Unity editor with Magic Leap App Simulator enabled.";


Handle​

The native handle ID for this API instance. Will be invalid until the API is started.


protected ulong Handle = Native.MagicLeapNativeBindings.InvalidHandle;