使用 Oculus Quest 的虚幻 IMotionController 空数组

Empty Array of IMotionControllers for Unreal using Oculus Quest

在 Unreal Engine 中设置 MotionController 的典型方法是通过蓝图,但我试图为各种 VR 设置识别不同类型的运动控制器,并从那里应用方向和位置数据。我使用 C++ 获取 Oculus Rift 和 Vive 控制器和跟踪器没有问题,但在 Oculus Quest 上,通过 ADB 调试时填充有 IMotionControllers 的数组为空。为什么会这样?

以下代码将仅在 Oculus Quest 上打印长度为 0。

const FName feature = FName(TEXT("MotionController"));
TArray<IMotionController*> controllers = IModularFeatures::Get().GetModularFeatureImplementations<IMotionController>(feature);
UE_LOG(LogGloveController, Warning, TEXT("Number of Controllers: %d"), controllers.Num());

我检查了 TickComponent 更新中的数组并填充了数组。控制器有时会出现延迟(即使 Rift/Vive),但它总是发生在 Quest 上。