ue4GameUrSetting的使⽤(设置分辨率,全屏模式,帧
率,垂直同步等)
ue4 GameUrSetting的使⽤(设置分辨率,全屏模式,帧率,垂直同步等)
当游戏开始时,游戏会⾃动从下⾯的⽬录中读取⽤户设置。后⼀个⽂件的配置将覆盖前⼀个的配置
当保存设置时, 将是在[ProjectDirectory]/Saved/Config/[Platform]/GameUrSettings.ini 中保存设置。
Engine/Config/Ba.ini
Ba.ini通常是空的。
Engine/Config/BaGameUrSettings.ini
Engine/Config/[Platform]/[Platform]GameUrSettings.ini
[ProjectDirectory]/Config/DefaultGameUrSettings.ini
[ProjectDirectory]/Config/[Platform]/[Platform]GameUrSettings.ini
[ProjectDirectory]/Saved/Config/[Platform]/GameUrSettings.ini
“已保存”⽬录中的配置⽂件仅在配置⽂件堆栈中存储特定于项⽬和特定于平台的差异。
如果是在编辑器中运⾏的话,(包括这⾥显⽰的这⼏项 ),ProjectDirectory 就是项⽬所在⽬录。如果是运⾏于,则ProjectDirectory是临时的,当ue4编辑器关闭后失效。
如果是在游戏中运⾏的话,ProjectDirectory⽬录就是游戏所在⽬录,不过对于6中的saved⽬录,windwos 的 shipping版Saved⽬录在C:\Urs\Administrator\AppData\Local\Project\下⽽其他模式下则在项⽬⽬录下。
当使⽤各种模式设置功能时,不会⽴即应⽤该模式,就像您在PC游戏设置菜单中所期望的那样。相反,该值将保存到游戏配置中,直到你调⽤相应地应⽤函数。
对于分辨率和全屏模式的设置,使⽤ApplyResolutionSetting来应⽤你的设置,其中参数bCheckForCommandLineOverrides 是 ⽤来说明 是否使⽤命令⾏参数(不是控制台参数)来覆盖当前设置的分辨率和全屏模式。通常我们使⽤fal
在调⽤该函数前,通常需要我们调⽤ConfirmVideoMode 来保存⽤户确认将要使⽤的分辨率和全屏模式。
(ConfirmVideoMode 函数会将当前保存在设置中的准备使⽤的分辨率和全屏模式保存在对应的lastConfiremed开头的变量中。如果不使⽤ConfirmVideoMode 保存地话,当我们调⽤RetToCurrentSettings后,该函数将把lastConfirmed设置为当前的分辨率和全屏模式,这将导致现在真正使⽤的分辨率并没有正确的反映再设置中,调⽤getScreenResolution或者保存设置时,就会返回错误分辨率)
对于分辨率和全屏模式的设置,常⽤的函数有如下
ApplyResolutionSettings(bool bCheckForCommandLineOverrides);
/** 应⽤分辨率和全屏模式的设置*/
ConfirmVideoMode();
/** 将现在的(fullscreenmode/resolution)设置 作为⽤户确认的设置*/
RevertVideoMode();
/** 将现在的 (fullscreenmode/resolution)设置 修改成之前⽤户确认的设置*/
分辨率
GetDefaultResolution()
/** 获取默认分辨率 返回的是0,0*/
IsScreenResolutionDirty()
/** 检测当前的⽤户设置分辨率是否与现在真正的的屏幕分辨率不同 */
GetScreenResolution()
/** 返回⽤户设置的屏幕分辨率, 单位是像素. */ 注意 全屏分辨率的设置,必须是GetSupportedFullscreenResolutions 中的⼀个,否则UI 会出问题
chine new yearGetLastConfirmedScreenResolution()
/** 返回⽤户设置的最后确认的屏幕分辨率, 单位是像素 */
GetDesktopResolution()
/** 返回桌⾯分辨率,这个是跟你windwos设置的桌⾯分辨率有关,单位是像素 */
SetScreenResolution(FIntPoint Resolution);
/** 设置屏幕分辨率. */
乔治亚理工全屏模式
GetDefaultWindowMode()
/** 获取默认全屏模式,返回windowedFullScreen */
IsFullscreenModeDirty()
/** 检测当前的⽤户设置全屏模式是否与现在真正的全屏模式不同 */
GetFullscreenMode()
/** 返回⽤户设置的全屏模式. */
/**
ignore是什么意思* Game window fullscreen mode
* 0 = Fullscreen// 全屏
* 1 = WindowedFullscreen//⽆边框窗⼝全屏
* 2 = Windowed//有边框的窗⼝模式
*/
GetLastConfirmedFullscreenMode()
/** 返回⽤户设置的最后确认的全屏模式 */
SetFullscreenMode(EWindowMode::Type InFullscreenMode);
/** 设置全屏模式. */
GetPreferredFullscreenMode()
/** 返回合适的全屏模式. */
还有两个不是GameUrSetting的分辨率常⽤函数
GetSupportedFullscreenResolutions
sp是什么意思
获取⽀持全屏分辨率的列表(Fullscreen, 不适⽤WindowedFullscreen, WindowedFullscreen 直接⽤GetDesktopResolution去获得就可以了)。如成功查询到可⽤分辨率的设备,则返回true,
GetConvenientWindowedResolutions
获取适⽤于当前主显⽰尺⼨的窗⼝化分辨率的列表。如成功查询到可⽤分辨率的设备,则返回true
对于其他的设置,使⽤ApplyNonResolutionSetting来应⽤你的设置。
网络图书馆ApplyNonResolutionSettings();
/** 应⽤所有⾮分辨率和全屏模式的设置*/
帧率
SetFrameRateLimit(float NewLimit);
/** 设置游戏帧率限制(相当于t.maxfps) (0或者⼩于0 将取消帧率限制,这⾥有问题,测试中0或者⼩于0的帧率为60帧) */
GetFrameRateLimit() const;
/** 获取游戏帧率限制*/大轰大嗡
垂直同步
SetVSyncEnabled(bool bEnable);
/** 设置是否开启垂直同步(锁帧屏幕刷新) */
IsVSyncEnabled() const;
/** 返回垂直同步是否开启. */
IsVSyncDirty() const;
/** 检测⽤户设置的垂直同步是否与现在的真正系统设置相同 */ GetSyncInterval()
/** 获得垂直同步间隔 */
动态分辨率
SetDynamicResolutionEnabled(bool bEnable);
/
** 设置是否开启动态分辨率. */
IsDynamicResolutionEnabled() const;
/** 返回是否开启动态分辨率. */
IsDynamicResolutionDirty() const;extremist
/** 检测⽤户设置的是否开启动态分辨率 与真正的系统设置是否相同*/⾳频质量
neet
SetAudioQualityLevel(int32 QualityLevel);
分公司如何纳税
/** 设置⾳频的质量*/
GetAudioQualityLevel() const { return AudioQualityLevel; }
/** 返回⽤户设置的⾳频质量 */
可扩展设置
SetOverallScalabilityLevel(int32 Value);
/
/ 设置所有可扩展设置的等级
// @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic
GetOverallScalabilityLevel() const;
// 返回所有可扩展设置的等级(如果所有可扩展设置等级不相同将返回-1)
GetResolutionScaleInformationEX(float& CurrentScaleNormalized, float& CurrentScaleValue, float& MinScaleValue, float& MaxScaleValue)
// 返回当前的分辨率缩放和缩放范围
SetResolutionScaleValueEx(float NewScaleValue);
// 设置当前的分辨率缩放
SetResolutionScaleNormalized(float NewScaleNormalized);
// 设置当前的分辨率缩放,以0-1表⽰最⼤和最⼩值
opinion
SetViewDistanceQuality(int32 Value);
// 设置视野距离质量 (0..4, higher is better)
// @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
GetViewDistanceQuality() const;
// Returns the view distance quality (0..4, higher is better)
SetShadowQuality(int32 Value);
// 设置阴影质量 (0..4, higher is better)
// @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
GetShadowQuality() const;
// Returns the shadow quality (0..4, higher is better)
SetAntiAliasingQuality(int32 Value);
// 设置抗锯齿质量 (0..4, higher is better)
/
/ @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)