In my case, I need to make a game Quality setting ui system for our game.
so how can I get the default game setting detail data so that to set up my game settting defual UIView.
Something like following:
In my case, I need to make a game Quality setting ui system for our game.
so how can I get the default game setting detail data so that to set up my game settting defual UIView.
Something like following:
Here’s a snippet of how I apply my game settings that you might find useful:
void APWNGameMode::ApplyGameplaySettings()
{
// Set FOV
PlayerController->PlayerCameraManager->SetFOV(GameplaySettings->GetFOV());
// Vsync
if (GEngine)
{
GEngine->bSmoothFrameRate = (GameplaySettings->GetUseVSync() ? 1 : 0);
//Changed in 4.2
GEngine->SmoothedFrameRateRange = FFloatRange(GameplaySettings->GetVSyncMinFPS(), GameplaySettings->GetVSyncMaxFPS());
}
// Test detail settings - Should move to gameplay settings
if (GEngine)
{
// Set quality
Scalability::FQualityLevels q;
q.AntiAliasingQuality = GameplaySettings->GetAntiAliasingQuality();
q.ViewDistanceQuality = GameplaySettings->GetViewDistanceQuality();
q.EffectsQuality = GameplaySettings->GetEffectsQuality();
q.PostProcessQuality = GameplaySettings->GetPostProcessQuality();
q.ResolutionQuality = GameplaySettings->GetResolutionQuality();
q.ShadowQuality = GameplaySettings->GetShadowQuality();
q.TextureQuality = GameplaySettings->GetTextureQuality();
Scalability::SetQualityLevels(q);
}
}
My GameplaySettings class is just a container with some config readers, getters and setters, so e.g.
GameplaySettings->GetAntiAliasingQuality()
Just returns a value between 0 and 4 depending on what was specified in my custom config file.
Thank you very much. it worked.
but I still do not know how to get the screen size and Framerate max
Max frame rate can only be set via Vertical Sync (bSmoothFrameRate).
Screen size you can set via a console command, e.g.
if (GEngine)
{
GEngine->Exec(GetWorld(), TEXT("r.SetRes 1920x1080"));
}
ok! it is so kind of you. thank you for help me!
Sure, no worries. Could you please mark the answer as solved, so others can see that the issue has been resolved, and then I can get my precious Internet Points :).