QualitySettings.SetQualityLevel Manual     Reference     Scripting  
Scripting > Runtime Classes > QualitySettings
QualitySettings.SetQualityLevel

static function SetQualityLevel (index : int, applyExpensiveChanges : boolean = true) : void

Parameters

NameDescription
index quality index to set
applyExpensiveChanges should expensive changes be applied (Anti-aliasing etc)

Description

Sets a new graphics quality level.

JavaScript
function OnGUI () 
{
var names = QualitySettings.names;
GUILayout.BeginVertical ();
for (var i = 0; i < names.Length; i++)
{
if (GUILayout.Button (names[i]))
QualitySettings.SetQualityLevel (i, true);
}
GUILayout.EndVertical ();
}

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
void OnGUI() {
string[] names = QualitySettings.names;
GUILayout.BeginVertical();
int i = 0;
while (i < names.Length) {
if (GUILayout.Button(names[i]))
QualitySettings.SetQualityLevel(i, true);

i++;
}
GUILayout.EndVertical();
}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

def OnGUI():
names as (string) = QualitySettings.names
GUILayout.BeginVertical()
i as int = 0
while i < names.Length:
if GUILayout.Button(names[i]):
QualitySettings.SetQualityLevel(i, true)
i++
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 adjustquality 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.

See Also: GetQualityLevel