Version: 2022.3
  • C#


class in UnityEngine


Inherits from:Object


Implemented in:UnityEngine.CoreModule

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.



Switch to Manual


Script interface for Quality Settings.

There can be an arbitrary number of quality settings. The details of each are set up in the project's Quality Settings. At run time, the current quality level can be changed using this class.

Static Properties

activeColorSpaceActive color space (Read Only).
anisotropicFilteringGlobal anisotropic filtering mode.
antiAliasingChoose the level of Multi-Sample Anti-aliasing (MSAA) that the GPU performs.
asyncUploadBufferSizeAsynchronous texture and mesh data upload provides timesliced async texture and mesh data upload on the render thread with tight control over memory and timeslicing. There are no allocations except for the ones which driver has to do. To read data and upload texture and mesh data, Unity re-uses a ringbuffer whose size can be controlled.Use asyncUploadBufferSize to set the buffer size for asynchronous texture and mesh data uploads. The minimum value is 2 megabytes and the maximum value is 2047 megabytes. The buffer resizes automatically to fit the largest texture currently loading. To avoid a buffer resize (which can use extra system resources) set this value to the size of the largest texture in the Scene. If you have issues with excessive memory usage, you may need to reduce the value of this buffer or disable asyncUploadPersistentBuffer. Memory fragmentation can occur if you choose the latter option.
asyncUploadPersistentBufferThis flag controls if the async upload pipeline's ring buffer remains allocated when there are no active loading operations. Set this to true, to make the ring buffer allocation persist after all upload operations have completed. If you have issues with excessive memory usage, you can set this to false. This means you reduce the runtime memory footprint, but memory fragmentation can occur. The default value is true.
asyncUploadTimeSliceAsync texture upload provides timesliced async texture upload on the render thread with tight control over memory and timeslicing. There are no allocations except for the ones which driver has to do. To read data and upload texture data a ringbuffer whose size can be controlled is re-used.Use asyncUploadTimeSlice to set the time-slice in milliseconds for asynchronous texture uploads per frame. Minimum value is 1 and maximum is 33.
billboardsFaceCameraPositionIf enabled, billboards will face towards camera position rather than camera orientation.
countThe number of Quality Levels.
desiredColorSpaceDesired color space (Read Only).
enableLODCrossFadeEnables or disables LOD Cross Fade.
globalTextureMipmapLimitIndicates how many of the highest-resolution mips of each texture Unity does not upload at the given quality level. To set more specific mipmap limits, you can flag textures to ignore mipmap limits or assign them to mipmap limit groups.
lodBiasGlobal multiplier for the LOD's switching distance.
maximumLODLevelA maximum LOD level. All LOD groups.
maxQueuedFramesMaximum number of frames queued up by graphics driver.
namesThe indexed list of available Quality Settings.
particleRaycastBudgetBudget for how many ray casts can be performed per frame for approximate collision testing.
pixelLightCountThe maximum number of pixel lights that should affect any object.
realtimeGICPUUsageHow much CPU usage to assign to the final lighting calculations at runtime.
realtimeReflectionProbesEnables real-time reflection probes.
renderPipelineThe RenderPipelineAsset that defines the override render pipeline for the current quality level.
resolutionScalingFixedDPIFactorIn resolution scaling mode, this factor is used to multiply with the target Fixed DPI specified to get the actual Fixed DPI to use for this quality setting.
shadowCascade2SplitThe normalized cascade distribution for a 2 cascade setup. The value defines the position of the cascade with respect to Zero.
shadowCascade4SplitThe normalized cascade start position for a 4 cascade setup. Each member of the vector defines the normalized position of the coresponding cascade with respect to Zero.
shadowCascadesNumber of cascades to use for directional light shadows.
shadowDistanceShadow drawing distance.
shadowmaskModeThe rendering mode of Shadowmask.
shadowNearPlaneOffsetOffset shadow frustum near plane.
shadowProjectionDirectional light shadow projection.
shadowResolutionThe default resolution of the shadow maps.
shadowsReal-time Shadows type to be used.
skinWeightsThe maximum number of bones per vertex that are taken into account during skinning, for all meshes in the project.
softParticlesShould soft blending be used for particles?
softVegetationUse a two-pass shader for the vegetation in the terrain engine.
streamingMipmapsActiveEnable automatic streaming of texture mipmap levels based on their distance from all active cameras.
streamingMipmapsAddAllCamerasProcess all enabled Cameras for texture streaming (rather than just those with StreamingController components).
streamingMipmapsMaxFileIORequestsThe maximum number of active texture file IO requests from the texture streaming system.
streamingMipmapsMaxLevelReductionThe maximum number of mipmap levels to discard for each texture.
streamingMipmapsMemoryBudgetThe total amount of memory (in megabytes) to be used by streaming and non-streaming textures.
streamingMipmapsRenderersPerFrameThe number of renderer instances that are processed each frame when calculating which texture mipmap levels should be streamed.
terrainBasemapDistanceValue set to Terrain.basemapDistance if TerrainQualityOverrides.BasemapDistance is set in terrainQualityOverrides.
terrainBillboardStartValue set to Terrain.treeBillboardDistance if TerrainQualityOverrides.BillboardStart is set in terrainQualityOverrides.
terrainDetailDensityScaleValue set to Terrain.detailObjectDensity if TerrainQualityOverrides.DetailDensity is set in terrainQualityOverrides.
terrainDetailDistanceValue set to Terrain.detailObjectDistance if TerrainQualityOverrides.DetailDistance is set in terrainQualityOverrides.
terrainFadeLengthValue set to Terrain.treeCrossFadeLength if TerrainQualityOverrides.FadeLength is set in terrainQualityOverrides.
terrainMaxTreesValue set to Terrain.treeMaximumFullLODCount if TerrainQualityOverrides.MaxTrees is set in terrainQualityOverrides.
terrainPixelErrorValue set to Terrain.heightmapPixelError if TerrainQualityOverrides.PixelError is set in terrainQualityOverrides.
terrainQualityOverridesControls which fields should have their values overriden in active Terrains.
terrainTreeDistanceValue set to Terrain.treeDistance if TerrainQualityOverrides.TreeDistance is set in terrainQualityOverrides.
useLegacyDetailDistributionUse the legacy pre-2022.2 algorithm for distributing details on terrain.
vSyncCountThe number of vertical syncs that should pass between each frame.

Static Methods

DecreaseLevelDecrease the current quality level.
ForEachXecutes the given Action for each tier on the QualitySettings.
GetActiveQualityLevelsForPlatform[Editor Only] Obtains an array with the Quality Level indexes that are selected for the given platform.
GetActiveQualityLevelsForPlatformCount[Editor Only] Obtains the number of Quality Levels that are selected for a given platform.
GetAllRenderPipelineAssetsForPlatform[Editor Only]Fills the given list with all the Render Pipeline Assets on any Quality Level for the given platform. Without filtering by Render Pipeline Asset type or null.
GetQualityLevelReturns the current graphics quality level.
GetQualitySettingsProvides a reference to the QualitySettings object.
GetRenderPipelineAssetAtProvides a reference to the RenderPipelineAsset that defines the override render pipeline for a given quality level.
GetRenderPipelineAssetsForPlatform[Editor Only] Obtains a set with the non null Render Pipeline Assets selected on all the Quality Levels for the given platform.
GetTextureMipmapLimitSettingsRetrieves a copy of the TextureMipmapLimitSettings from a texture mipmap limit group.
IncreaseLevelIncrease the current quality level.
IsPlatformIncluded[Editor Only] Returns if the given platform is included by the Quality Level.
SetLODSettingsSets the lodBias and maximumLODLevel at the same time.
SetQualityLevelSets a new graphics quality level.
SetTextureMipmapLimitSettingsApplies new TextureMipmapLimitSettings to the indicated texture mipmap limit group.
TryExcludePlatformAt[Editor Only] Excludes a platfor for the given Quality Level.
TryIncludePlatformAt[Editor Only] Includes a platform to be supported by the Quality Level.


activeQualityLevelChangedDelegate that you can use to invoke custom code when Unity changes the current Quality Level.

Inherited Members


hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
nameThe name of the object.

Public Methods

GetInstanceIDGets the instance ID of the object.
ToStringReturns the name of the object.

Static Methods

DestroyRemoves a GameObject, component or asset.
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectOfTypeReturns the first active loaded object of Type type.
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
FindObjectsOfTypeGets a list of all loaded objects of Type type.
InstantiateClones the object original and returns the clone.


boolDoes the object exist?
operator !=Compares if two objects refer to a different object.
operator ==Compares two object references to see if they refer to the same object.