internal static unsafe IReadOnlyCollection <XRDeviceId> Invoke(Name SystemId, EXRTrackedDeviceType DeviceType) { long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L }; byte *b = (byte *)p; *((Name *)(b + 0)) = SystemId; *(b + 12) = (byte)DeviceType; Main.GetProcessEvent(HeadMountedDisplayFunctionLibrary.DefaultObject, EnumerateTrackedDevices_ptr, new IntPtr(p));; //TODO: array TArray ReturnValue return(UObject.ToUnmangedCollection <XRDeviceId>(b + 16)); } }
///<summary>Cross XR-System query that will list all XR devices currently being tracked.</summary> ///<remarks> ///@param SystemId (Optional) Specifies an explicit system to poll devices from (use if you want only devices belonging to one explicit XR ecosystem, e.g. 'OculusHMD', or 'SteamVR') ///@param DeviceType Specifies the type of device to query for - defaults to 'Any' (meaning 'All'). /// ///@return A list of device identifiers matching the query. Use these to query and operate on the device (e.g. through GetDevicePose, AddDeviceVisualizationComponent, etc.) ///</remarks> public static IReadOnlyCollection <XRDeviceId> EnumerateTrackedDevices(Name SystemId, EXRTrackedDeviceType DeviceType) => HeadMountedDisplayFunctionLibrary_methods.EnumerateTrackedDevices_method.Invoke(SystemId, DeviceType);