SetQualityLevel
Sets a new graphics quality level.
Read time 2 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
SetQualityLevel(int)
Sets a new graphics quality level.
public static void SetQualityLevel(int index)
Parameters
Quality index to set.
Remarks
The list of quality levels can be found by going to Edit > Project Settings > Quality. You can add, remove or edit these.
using UnityEngine;public class Example : MonoBehaviour{ void OnGUI() { string[] names = QualitySettings.names; GUILayout.BeginVertical(); for (int i = 0; i < names.Length; i++) { if (GUILayout.Button(names[i])) { QualitySettings.SetQualityLevel(i, true); } } GUILayout.EndVertical(); }}
Note that changing the quality level can be an expensive operation if the new level has different anti-aliasing setting. It's fine to change the level when applying in-game quality options, but if you want to dynamically adjust quality level at runtime, pass false to applyExpensiveChanges so that expensive changes are not always applied.
When building a player quality levels that are not used for that platform are stripped. You should not expect a given quality setting to be at a given index. It's best to query the available quality settings and use the returned index.
Additional Resources: QualitySettings.GetQualityLevel.
SetQualityLevel(int, bool)
Sets a new graphics quality level.
public static void SetQualityLevel(int index, bool applyExpensiveChanges)
Parameters
Remarks
The list of quality levels can be found by going to Edit > Project Settings > Quality. You can add, remove or edit these.
using UnityEngine;public class Example : MonoBehaviour{ void OnGUI() { string[] names = QualitySettings.names; GUILayout.BeginVertical(); for (int i = 0; i < names.Length; i++) { if (GUILayout.Button(names[i])) { QualitySettings.SetQualityLevel(i, true); } } GUILayout.EndVertical(); }}
Note that changing the quality level can be an expensive operation if the new level has different anti-aliasing setting. It's fine to change the level when applying in-game quality options, but if you want to dynamically adjust quality level at runtime, pass false to applyExpensiveChanges so that expensive changes are not always applied.
When building a player quality levels that are not used for that platform are stripped. You should not expect a given quality setting to be at a given index. It's best to query the available quality settings and use the returned index.
Additional Resources: QualitySettings.GetQualityLevel.