Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

QualitySettings.SetQualityLevel

static function SetQualityLevel(index: int, applyExpensiveChanges: bool = true): void;
static void SetQualityLevel(int index, bool applyExpensiveChanges = true);
static def SetQualityLevel(index as int, applyExpensiveChanges as bool = true) as void

Parameters

indexQuality index to set.
applyExpensiveChangesShould expensive changes be applied (Anti-aliasing etc).

Description

Sets a new graphics quality level.

	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 ExampleClass : 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

public class ExampleClass(MonoBehaviour):

	def OnGUI() as void:
		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.