在虚幻引擎中设置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上发生。