[UE4][VR]将HTC Vive的WaittingRoom变成黑屏

       最近在做VR游戏开发时候,遇到了一个问题,使用OpenLevel打开一张比较大的地图时,UE4会出现无响应,VR画面自动返回WaittingRoom。找了好多资料,最终在某乎上找到了一位大神的解决方案。

感谢大神同意授权转载:https://zhuanlan.zhihu.com/p/53802660

解决步骤如下

1.下载OpenVr的插件,注意选择好UE4的版本(哎,下载连接已经404了,大家就当作个参考吧)

https://github.com/mordentral/VRExpansionPlugin

https://bitbucket.org/mordentral/vrexpansionplugin/downloads/?tab=branches

2.到你工程里(和content同级目录) ,新建Plugins文件夹

3.把你下载下来的文件复制到Plugins文件夹里

4.打开工程,会提示你需要重新build插件,选择是(英文),等待完成

(假如没有提示的话,直接用编辑器打开工程,就会出现提示,然后build完成后,删除原来的sln,重新generate一个,pluguins文件夹就会出现在工程里)

5.接下来需要修改C++代码,如果你是纯蓝图,可以随便新建一个C++类,然后就能进入VS工程

6.在vs中找到OpenVRExpansionFunctionLibrary类

7.在OpenVRExpansionFunctionLibrary.h添加

UFUNCTION(BlueprintCallable, Category = "VRExpansionFunctions|SteamVR|WaitRoomSet", meta = (bIgnoreSelf = "true"))
	    static bool BringCompositorToFront();

UFUNCTION(BlueprintCallable, Category = "VRExpansionFunctions|SteamVR|WaitRoomSet", meta = (bIgnoreSelf = "true"))
	    static bool BringCompositorToBack();

 

8.在OpenVRExpansionFunctionLibrary.cpp添加 

bool UOpenVRExpansionFunctionLibrary::BringCompositorToFront()
{
#if !STEAMVR_SUPPORTED_PLATFORM
	UE_LOG(OpenVRExpansionFunctionLibraryLog, Warning, TEXT("Not SteamVR Supported Platform!!"));
	return false;
#else
	vr::HmdError HmdErr;
	vr::IVRCompositor * VRCompositor = (vr::IVRCompositor*)vr::VR_GetGenericInterface(vr::IVRCompositor_Version, &HmdErr);

	if (!VRCompositor)
	{
		UE_LOG(OpenVRExpansionFunctionLibraryLog, Warning, TEXT("VR Compositor InterfaceErrorCode %i"), (int32)HmdErr);
		return false;
	}

	VRCompositor->CompositorBringToFront();

	return true;

#endif

}

bool UOpenVRExpansionFunctionLibrary::BringCompositorToBack()
{
#if !STEAMVR_SUPPORTED_PLATFORM
	UE_LOG(OpenVRExpansionFunctionLibraryLog, Warning, TEXT("Not SteamVR Supported Platform!!"));
	return false;
#else
	vr::HmdError HmdErr;
	vr::IVRCompositor * VRCompositor = (vr::IVRCompositor*)vr::VR_GetGenericInterface(vr::IVRCompositor_Version, &HmdErr);

	if (!VRCompositor)
	{
		UE_LOG(OpenVRExpansionFunctionLibraryLog, Warning, TEXT("VR Compositor InterfaceErrorCode %i"), (int32)HmdErr);
		return false;
	}

	VRCompositor->CompositorGoToBack();

	return true;

#endif

}

9.编译,运行editor

10.在VR的Pawn里调用函数(back:变黑;Front:变回来)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值