52 lines
		
	
	
		
			929 B
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			929 B
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using UnityEngine; | ||
|  | 
 | ||
|  | namespace TPSBR | ||
|  | { | ||
|  | 	public class MaterialQualitySwitcher : MonoBehaviour | ||
|  | 	{ | ||
|  | 		[SerializeField] | ||
|  | 		private Renderer _renderer; | ||
|  | 		[SerializeField] | ||
|  | 		private Material _low; | ||
|  | 		[SerializeField] | ||
|  | 		private Material _medium; | ||
|  | 		[SerializeField] | ||
|  | 		private Material _high; | ||
|  | 		[SerializeField] | ||
|  | 		private Material _ultra; | ||
|  | 
 | ||
|  | 		private int _qualityLevel = -1; | ||
|  | 
 | ||
|  | 		// MONOBEHAVIOUR | ||
|  | 
 | ||
|  | 		private void Awake() | ||
|  | 		{ | ||
|  | 			UpdateMaterial(); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		private void Update() | ||
|  | 		{ | ||
|  | 			UpdateMaterial(); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		// PRIVATE METHODS | ||
|  | 
 | ||
|  | 		private void UpdateMaterial() | ||
|  | 		{ | ||
|  | 			int qualityLevel = QualitySettings.GetQualityLevel(); | ||
|  | 			if (_qualityLevel == qualityLevel) | ||
|  | 				return; | ||
|  | 
 | ||
|  | 			_qualityLevel = qualityLevel; | ||
|  | 
 | ||
|  | 			switch (qualityLevel) | ||
|  | 			{ | ||
|  | 				case 0: _renderer.material = _low;    break; | ||
|  | 				case 1: _renderer.material = _medium; break; | ||
|  | 				case 2: _renderer.material = _high;   break; | ||
|  | 				case 3: _renderer.material = _ultra;  break; | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | } |