public void CopyFrom(TsMobileQualityManager.Quality src) { bool isActive = TsMobileQualityManager.QualityInitializer.IsActive; TsMobileQualityManager.QualityInitializer.IsActive = true; this.Version = src.Version; this.Level = src.Level; this.Name = src.Name; this.m_ShadowType = src.m_ShadowType; this.m_ShaderMaxLOD = src.m_ShaderMaxLOD; this.m_EnableShadow = src.m_EnableShadow; this.DepthOfField = src.DepthOfField; this.TerrainPixelErrorScale = src.TerrainPixelErrorScale; this.m_Bloom = TsMobileQualityManager.SavedProperty.Pass(TsMobileQualityManager.PropertyName.Bloom, src.m_Bloom); this.m_TextureQuality = TsQualityManager.TextureQuality.FULL; TsMobileQualityManager.QualityInitializer.IsActive = isActive; }
private void ChangeExtraQuality(TsQualityManager.Level level, TsQualityManager.GameVersion version, Camera camera) { ITsGameQuality currQuality = TsQualityManager.Instance.CurrQuality; camera.farClipPlane = TsMobileQualityManager.mCameraFar[(int)level]; float[] array = new float[] { 20.1f, 35f, 50f, 65f, 80f }; float[] array2 = new float[] { 100f, 125f, 150f, 200f, 250f }; float[] array3 = new float[] { 150f, 200f, 250f, 400f, 400f }; float num = 20f; float num2 = 1f - num / 100f; if (version == TsQualityManager.GameVersion.LITE_VER) { for (int i = 0; i < array.Length; i++) { array[i] *= num2; } for (int j = 0; j < array2.Length; j++) { array2[j] *= num2; } for (int k = 0; k < array3.Length; k++) { array3[k] *= num2; } } float[] layerCullDistances = camera.layerCullDistances; layerCullDistances[TsLayer.SMALL_OBJECT] = array[(int)level]; layerCullDistances[TsLayer.MEDIUM_OBJECT] = array2[(int)level]; layerCullDistances[TsLayer.LARGE_OBJECT] = array3[(int)level]; camera.layerCullDistances = layerCullDistances; MonoBehaviour monoBehaviour = camera.GetComponent("MobileBloom") as MonoBehaviour; if (monoBehaviour != null) { monoBehaviour.enabled = currQuality.Bloom; } monoBehaviour = (camera.GetComponent("TsMobileVignetting") as MonoBehaviour); if (monoBehaviour != null) { monoBehaviour.enabled = (level >= TsQualityManager.Level.HIGHEST); } int[] array4 = new int[] { 200, 300, 300, 400, 400 }; Shader.globalMaximumLOD = array4[(int)level]; TsLayerMask layerMask = TsLayer.NOTHING; switch (level) { case TsQualityManager.Level.LOWEST: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.LOW: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.MEDIUM: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_MIDDLE + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.HIGH: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_HIGH + TsLayer.EFFECT_MIDDLE + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.HIGHEST: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_HIGH + TsLayer.EFFECT_MIDDLE + TsLayer.EFFECT_LOW; break; } camera.cullingMask = layerMask + this.DEFAULT_RENDERABLE_LAYER; }