虚幻引擎运行时态调整游戏窗口最大化与最小化

前言

一般我们有可能需要在游戏运行时调整启动窗口的最大化和最小化,在虚幻引擎中如何实现呢?

思路

首先虚幻引擎的整个页面都是由Slate实现,所以如果想要调整窗口的状态,需要从Slate中入手。

窗口肯定是先要搜索Window,在Slate中窗体的类就是SWindow,在SWindow中我们也很容易找到最大化与最小化的相关函数。

接下来就需要思考游戏窗口会存储在哪里。通过查找源码可以发现游戏的窗体被存储在UGameEngine中,所以从Engine实例即可完成操作。

代码

if (UGameEngine* GameEngine = Cast<UGameEngine>(GEngine))
{
	//弱指针需要进行pin操作,防止指针被释放
	TSharedPtr<SWindow> GameWindow = GameEngine->GameViewportWindow.Pin();
	if (GameWindow)
	{
		//窗口最小化
		GameWindow->Minimize();
		//窗口最大化
		GameWindow->Maximize();
	}
}

注意

项目中使用Slate切记一定要引入模块,Slate,SlateCore

引擎版本:4.27.2

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注