После итерации по массиву FMotionControllerSource
устройства OculusInputDevice IMotionController
я обнаружил подключенный контроллер Oculus Right и Left Touch на основе его ETrackingStatus. С помощью левого и правого контроллеров я могу получить местоположение и вращение с помощью IMotionController
API, который Returns the calibration-space orientation of the requested controller's hand
.
Вот ссылка на API IMotionController: https://docs.unrealengine.com/en-US/API/Runtime/HeadMountedDisplay/IMotionController/index.html
Я хочу применить расположение / поворот к PosableMesh
, чтобы сетка отображалась там, где на самом деле находится контроллер Oculus. В настоящее время с кодом ниже 3D-модель отображается вниз от камеры, поэтому масштаб отображения отключен. Я думаю, WorldToMetersScale
может быть выключен. Когда я использую небольшое количество, контроллер не сильно перемещает 3D-модель, но это может ее испортить.
FVector position;
FRotator rotation;
int id = tracker.deviceIndex;
FName srcName = tracker.motionControllerSource;
bool success = tracker.motionController->GetControllerOrientationAndPosition(id, srcName, rotation, position, 250.0f);
if (success)
{
poseMesh->SetWorldLocationAndRotation(position, rotation);
}