复制
收藏
提问
简洁

帮忙写一个虚幻引擎的C++函数库的方法,方法提供两个参数,通过获取用户系统的屏幕分辨率的X,将窗口改变那一边X或Y为基准,X改变时,将Y改变为X的十六分之九,同样Y改变时,将X设置为Y九分之十六就是缩放窗口,让他始终保持为16:9的比,参考下方函数GetSystemMetrics函数可以直接获取用户windows的分辨率添加windowswindow头文件就可以使用 voiduMyBlueprintFunctionLibrary::setwindowsscreen(float width, float Hight)1l设置窗口分辨卓 UGameUserSettings* UserSettings = GEngine->GetGameUserSettings();//int wiath = GetsystemMetrics(SM_CXSCREEN);//int height = GetsystemMetrics(SM_CYSCREEN),// UE_LOG(LogTemp,Warning,TEXT("%d------------”)。 width)'/UE_LOG(LogTemp,Warning,TExT("%d-----------”)。 height)if (Usersettings) Usersettings->setscreenRes0ion(FIntPoint(inx: width,iny: Hight));Usersettings->setFullscrMode(EwindowHode::Windowed);dowPosx: width, windowPosY: Hight);Usersettings->SetiUserSettings->Applysett1kForcommandLineoverrides:true),虚幻引擎的 项目名vv cpp文件名MyClass2

96d843159
3周前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些
  • 编写虚幻引擎C++函数库方法。

获取系统分辨率并设置窗口比例

  • 函数定义:首先定义一个C++函数库方法,用于设置窗口分辨率并保持16:9的比例。
void uMyBlueprintFunctionLibrary::setWindowScreen(float width, float height)
  • 获取系统分辨率:使用GetSystemMetrics函数获取用户系统的屏幕分辨率。
int32 systemWidth = GetSystemMetrics(SM_CXSCREEN);
int32 systemHeight = GetSystemMetrics(SM_CYSCREEN);
  • 设置分辨率:根据传入的宽度或高度,调整另一个维度以保持16:9的屏幕比例。
if (width / height == 16.0f / 9.0f)
{
    UserSettings->SetResolution(FIntPoint(systemWidth, static_cast<int32>(width * (9.0f / 16.0f))));
}
else if (height / width == 9.0f / 16.0f)
{
    UserSettings->SetResolution(FIntPoint(static_cast<int32>(height * (16.0f / 9.0f)), systemHeight));
}
  • 应用设置:最后应用设置并确保全屏模式。
UserSettings->SetFullScreenMode(EWindowMode::Windowed);
UserSettings->ApplySettings(false);
  • 日志记录:使用UE_LOG记录当前设置的分辨率,以便于调试。
UE_LOG(LogTemp, Warning, TEXT("Width: %d"), systemWidth);
UE_LOG(LogTemp, Warning, TEXT("Height: %d"), systemHeight);

应用设置

  • 函数实现:在MyClass2.cpp文件中实现上述方法,确保可以正确设置窗口分辨率并保持16:9的屏幕比例。10
你觉得结果怎么样?
虚幻引擎C++开发技巧有哪些?
如何优化虚幻引擎的性能?
虚幻引擎中如何实现多平台适配?
如何使用GetSystemMetrics获取屏幕分辨率?
16:9屏幕比例的计算方法是什么?
如何在C++中应用UE_LOG进行日志记录?

以上内容由AI搜集生成,仅供参考

在线客服