UE4 StreamVR连接不同一体机VR Link模拟器

头显基本上没有问题,不需要设置,HDM设置为True基本上都是没问题的。手柄就有比较多的讲究了。
1、手柄按键
尽量用按键映射消息事件,将尽量多的按键映射到按钮事件上,以保证各种手柄都可以兼容
Project Settings->Input设置按键映射
在这里插入图片描述
在这里插入图片描述
设置尽量多的兼容手柄布局按键事件
蓝图中响应按键事件,模拟鼠标Click点击
在这里插入图片描述

2、手柄位置

bool AMotionControllerBase::GetControllerRelativeLocationAndRotation(FVector& v, FRotator& r)
{
    
    
	/*
	 * HTC VIVE连接StreamVR
	 * Oculus Quest连接StreamVR
	 */
	if (ControllerAuto && ControllerAuto->IsTracked())
	{
    
    
		v = ControllerAuto->GetRelativeLocation();
		r = ControllerAuto->GetRelativeRotation();
		return true;
	}
	/*
	 * Huawei VR配合Nolo Air连接StreamVR
	 */
	else {
    
    
		TArray<int32> DeviceIds;
		TArray<int32> TrackerIds;
		USteamVRFunctionLibrary::GetValidTrackedDeviceIds(ESteamVRTrackedDeviceType::Controller, DeviceIds);
		USteamVRFunctionLibrary::GetValidTrackedDeviceIds(ESteamVRTrackedDeviceType::Other, TrackerIds);
		DeviceIds.Append(TrackerIds);

		if (DeviceIds.Num() > 0)
		{
    
    
			USteamVRFunctionLibrary::GetTrackedDevicePositionAndOrientation(DeviceIds[0], v, r);
			return true;
		}
		else {
    
    
			return false;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_31042143/article/details/126629343
今日推荐