| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | using System.Collections;using System.Collections.Generic;using UnityEngine;using System;namespace Enviro{    [Serializable]    public class EnviroQualities    {           public EnviroQuality defaultQuality;        public List<EnviroQuality> Qualities = new List<EnviroQuality>();    }     [Serializable]    public class EnviroQualityModule : EnviroModule    {           public Enviro.EnviroQualities Settings = new EnviroQualities();        public EnviroQualityModule preset;        public bool showQualityControls;         public override void Enable()        {            base.Enable();            //Make sure that we always have at least one quality profile!            if(Settings.defaultQuality == null)            {                if(Settings.Qualities.Count > 0)                {                     Settings.defaultQuality = Settings.Qualities[0];                }                else                {                    CreateNewQuality();                    Settings.defaultQuality = Settings.Qualities[0];                }            }        }        public override void UpdateModule ()        {             if(Settings.defaultQuality != null)            {                if(EnviroManager.instance.VolumetricClouds != null)                {                    EnviroManager.instance.VolumetricClouds.settingsQuality.volumetricClouds = Settings.defaultQuality.volumetricCloudsOverride.volumetricClouds;                     EnviroManager.instance.VolumetricClouds.settingsGlobal.dualLayer = Settings.defaultQuality.volumetricCloudsOverride.dualLayer;                     EnviroManager.instance.VolumetricClouds.settingsQuality.downsampling = Settings.defaultQuality.volumetricCloudsOverride.downsampling;                    EnviroManager.instance.VolumetricClouds.settingsQuality.stepsLayer1 = Settings.defaultQuality.volumetricCloudsOverride.stepsLayer1;                    EnviroManager.instance.VolumetricClouds.settingsQuality.stepsLayer2 = Settings.defaultQuality.volumetricCloudsOverride.stepsLayer2;                    EnviroManager.instance.VolumetricClouds.settingsQuality.blueNoiseIntensity = Settings.defaultQuality.volumetricCloudsOverride.blueNoiseIntensity;                    EnviroManager.instance.VolumetricClouds.settingsQuality.reprojectionBlendTime = Settings.defaultQuality.volumetricCloudsOverride.reprojectionBlendTime;                    EnviroManager.instance.VolumetricClouds.settingsQuality.lodDistance = Settings.defaultQuality.volumetricCloudsOverride.lodDistance;                }                  if(EnviroManager.instance.Fog != null)                {                    EnviroManager.instance.Fog.Settings.fog = Settings.defaultQuality.fogOverride.fog;                    EnviroManager.instance.Fog.Settings.volumetrics = Settings.defaultQuality.fogOverride.volumetrics;                    EnviroManager.instance.Fog.Settings.quality = Settings.defaultQuality.fogOverride.quality;                    EnviroManager.instance.Fog.Settings.steps = Settings.defaultQuality.fogOverride.steps;                }            }        }                 public void CleanupQualityList()         {            for (int i = 0; i < Settings.Qualities.Count; i++)            {                if(Settings.Qualities[i] == null)                    Settings.Qualities.RemoveAt(i);            }         }                 //Add new or assigned quality        public void CreateNewQuality()        {            EnviroQuality quality = EnviroQualityCreation.CreateMyAsset();            Settings.Qualities.Add(quality);        }        /// Removes the quality from the list.        public void RemoveQuality(EnviroQuality quality)        {             Settings.Qualities.Remove(quality);        }        //Save and Load         public void LoadModuleValues ()        {            if(preset != null)            {                Settings = JsonUtility.FromJson<Enviro.EnviroQualities>(JsonUtility.ToJson(preset.Settings));            }            else            {                Debug.Log("Please assign a saved module to load from!");            }        }        public void SaveModuleValues ()        {#if UNITY_EDITOR        EnviroQualityModule t =  ScriptableObject.CreateInstance<EnviroQualityModule>();        t.name = "Quality Module Preset";        t.Settings = JsonUtility.FromJson<Enviro.EnviroQualities>(JsonUtility.ToJson(Settings));         string assetPathAndName = UnityEditor.AssetDatabase.GenerateUniqueAssetPath("Assets/Enviro 3" + "/New " + t.name + ".asset");        UnityEditor.AssetDatabase.CreateAsset(t, assetPathAndName);        UnityEditor.AssetDatabase.SaveAssets();        UnityEditor.AssetDatabase.Refresh();#endif        }        public void SaveModuleValues (EnviroQualityModule module)        {            module.Settings = JsonUtility.FromJson<Enviro.EnviroQualities>(JsonUtility.ToJson(Settings));            #if UNITY_EDITOR            UnityEditor.EditorUtility.SetDirty(module);            UnityEditor.AssetDatabase.SaveAssets();            #endif        }    }}
 |