UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IXRSystemAssets Class Referenceabstract

#include <IXRSystemAssets.h>

+ Inheritance diagram for IXRSystemAssets:

Public Member Functions

virtual bool EnumerateRenderableDevices (TArray< int32 > &DeviceListOut)=0
 
virtual int32 GetDeviceId (EControllerHand ControllerHand)=0
 
virtual UPrimitiveComponent * CreateRenderComponent (const int32 DeviceId, AActor *Owner, EObjectFlags Flags, const bool bForceSynchronous=false, const FXRComponentLoadComplete &OnLoadComplete=FXRComponentLoadComplete())=0
 
- Public Member Functions inherited from IXRSystemIdentifier
virtual FName GetSystemName () const =0
 

Static Public Member Functions

static FName GetModularFeatureName ()
 

Member Function Documentation

◆ CreateRenderComponent()

virtual UPrimitiveComponent * IXRSystemAssets::CreateRenderComponent ( const int32  DeviceId,
AActor Owner,
EObjectFlags  Flags,
const bool  bForceSynchronous = false,
const FXRComponentLoadComplete OnLoadComplete = FXRComponentLoadComplete() 
)
pure virtual

Attempts to spawn a renderable component for the specified device. Returns a component that needs to be attached and registered by the caller.

NOTE: Resource loads for this component may be asynchronous. The component can be attached and registered immediately, but there may be a delay before it renders properly. To make the operation synchronous use the bForceSynchronous param.

Parameters
DeviceIdUniquely identifies the XR device you want to render.
OwnerThe actor which this component will be attached to.
FlagsObject creation flags to spawn the component with.
bForceSynchronousForces the any associated resource loads to complete before returning.
OnLoadCompleteModel load callback, useful for when the load is asynchronous - should be triggered for synchronous loads as well.
Returns
A valid component pointer if the method succeeded, otherwise null.

◆ EnumerateRenderableDevices()

virtual bool IXRSystemAssets::EnumerateRenderableDevices ( TArray< int32 > &  DeviceListOut)
pure virtual

Fills out a device list with unique identifiers that can be used to reference system specific devices.

These IDs are intended to be used with certain methods to reference a specific device (like with CreateRenderComponent(), etc.). NOTE: that these IDs are NOT interoperable across XR systems (vive vs. oculus, etc.). Using an ID from one system with another will have undefined results.

Parameters
DeviceListOutA list of
Returns
True if the DeviceList was successfully updated, otherwise false.

◆ GetDeviceId()

virtual int32 IXRSystemAssets::GetDeviceId ( EControllerHand  ControllerHand)
pure virtual

Provides a mapping for MotionControllers, so we can identify the device ID used for a specific hand (which in turn can be used in other functions, like CreateRenderComponent, etc.).

NOTE: Some systems will not have an explicit mapping until the device is on and registered. In that case, this function will return an invalid device ID.

NOTE: Not all XR systems support every EControllerHand value. If that's the case, then this will return an invalid device ID, though that specific value is undetermined and up to each XRSystem for interpretation.

Parameters
ControllerHandThe UE specific hand identifier you want a system specific device ID for.
Returns
A device ID that is specific to this XRSystem (can only be interpreted by other members belonging to the same IXRSystemIdentifier)

◆ GetModularFeatureName()

static FName IXRSystemAssets::GetModularFeatureName ( )
inlinestatic

The documentation for this class was generated from the following file: