- Home /
Changing quality settings based on users phone
I have a game that is quite graphics intensive and was hoping it would be possible to
a) Have it autodetect the device and change quality settings based on that or b) Have them choose, and be able to change, quality settings in game (Low, Medium, High etc)
Is this possible? and if so does that mean the project becomes much larger in scale as it needs 3 quality settings at the ready instead of one?
I found this (https://docs.unity3d.com/ScriptReference/QualitySettings.SetQualityLevel.html) and was wondering if it's as simple as that.
Thanks
Answer by JVene · Aug 08, 2018 at 01:39 AM
Almost. You can actually increase the complexity of the options, but basically that covers the overall quality settings which adapt to lesser capable devices.
Not only is it possible, it is somewhat important for what you describe. First, try the various settings available from SetQualityLevel to check the results and consider if that's good enough and looks good to you.
After that you have to get your game face on. It can get as complex from here as you like. You can choose from alternate texture/materials, alternate models, alternate post processing effects, particle effects, etc. That is in the application, not from an overall setting.
If you really want this to be automatic, you fashion a benchmark scene and run it, time it and make a judgment based on your own testing to select an alternate setting and/or configuration of your application (as mentioned above), maybe test again and suggest to the user a setting, but let them choose what they'll accept. Some may choose for lighter graphics for faster game play, but others might choose slower game play over slightly better graphics or a particular graphics setting.
But can't I go into Quality settings, create a new one called "Low" change all shadows to low res and then call on that with QualitySettings.SetQualityLevel?
I don't require huge in depth texture changing (As I am quite a novice Unity Dev) but have slight optimisations from the quality settings would be nice.
Thanks
You have the right idea, and you're in control of what is available to the user. Only you can really tell what is "heavy" on a lesser phone.
As an aside, this applies more to Android targets than iOS targets, because the variety and age of the Android devices are much wider, and most iOS users are on recent devices with the $$anonymous$$etal API (which is more efficient and thus faster than OpenGL ES of any version).
If I did just choose to change the quality settings slightly and allow the user to choose what they wanted. How would it handle a change in graphics mid level. Would it struggle, be instant, a bad idea? I am curious as to putting a button that increases/decreases settings on the fly in my HUD. Thanks
Your answer
Follow this Question
Related Questions
Defining mipmap size minimum? 0 Answers
Decrease on Texture quality on mobile build (android) 0 Answers
Post Build Low Quality Issue 0 Answers
Get current quality settings 1 Answer
How to retrieve quality settings of a specified QualityLevel? 0 Answers