这个在一搬的UE开发中难以遇到,这也导致中文互联网没有针对于本问题的一个介绍。

问题就是虚幻引擎标准限制分辨率为640X480

发现这个问题是在开发一套程序时偶然发现(平时使用unity,unity没有此类限制),这个问题在编辑器下设置分辨率模拟时并不会触发日志错误警告,可能独立进程游戏模式会发现?没试过。

国内没有讨论这个问题的帖子,通过Google检索到在UnrealEngine论坛上有开发者讨论过这个问题,但无人回复。即下面这个帖子:

https://forums.unrealengine.com/t/windows-the-current-resolution-is-too-low-to-run-this-game/1880920

定位到UE源码(需要有仓库访问权限),可以看到源码中是对Windows平台做了分辨率限制,是个const 常量值。

https://github.com/EpicGames/UnrealEngine/blob/16dc333db3d6439c7f2886cf89db8907846c0e8a/Engine/Source/Runtime/Core/Private/Windows/WindowsPlatformMisc.cpp#L891
const int32 MinResolution[] = {640,480};
	if ( ::GetSystemMetrics(SM_CXSCREEN) < MinResolution[0] || ::GetSystemMetrics(SM_CYSCREEN) < MinResolution[1] )
	{
		FMessageDialog::Open( EAppMsgType::Ok, NSLOCTEXT("Launch", "Error_ResolutionTooLow", "The current resolution is too low to run this game.") );
		FPlatformMisc::RequestExit( false, TEXT("FWindowsPlatformMisc::PlatformPreInit.ResolutionTooLow"));
	}

判断是发生在Windows平台预初始化函数时,如果分辨率不满足其中一条,则会弹窗提示错误信息The current resolution is too low to run this game.

目前尚不可得知通过源码构建修改此处限制能否突破本限制;源码构建光引擎占用300G+,而且编译费时,毕竟这个问题碰到一次下次就会规避了,不太可能多次碰到本问题。

另一种解决方案就是创建虚假分辨率,以骗过引擎。

总之,尽量不要使用这个分辨率,省事又不闹心。