EnviroQuality.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. namespace Enviro
  6. {
  7. [Serializable]
  8. public class EnviroVolumetricCloudsQualitySettings
  9. {
  10. public bool volumetricClouds = true;
  11. public bool dualLayer = false;
  12. public int downsampling = 4;
  13. public int stepsLayer1 = 128;
  14. public int stepsLayer2 = 64;
  15. public float blueNoiseIntensity = 1f;
  16. public float reprojectionBlendTime = 10f;
  17. public float lodDistance = 0.25f;
  18. }
  19. [Serializable]
  20. public class EnviroFogQualitySettings
  21. {
  22. public bool fog = true;
  23. public bool volumetrics = true;
  24. public EnviroFogSettings.Quality quality;
  25. [Range(16,96)]
  26. public int steps = 32;
  27. }
  28. [Serializable]
  29. public class EnviroQuality : ScriptableObject
  30. {
  31. //Inspector
  32. public bool showEditor, showVolumeClouds, showFog, showEffects;
  33. //Volumetric Clouds
  34. public EnviroVolumetricCloudsQualitySettings volumetricCloudsOverride;
  35. public EnviroFogQualitySettings fogOverride;
  36. }
  37. public class EnviroQualityCreation
  38. {
  39. #if UNITY_EDITOR
  40. [UnityEditor.MenuItem("Assets/Create/Enviro3/Quality")]
  41. #endif
  42. public static EnviroQuality CreateMyAsset()
  43. {
  44. EnviroQuality wpreset = ScriptableObject.CreateInstance<EnviroQuality>();
  45. #if UNITY_EDITOR
  46. // Create and save the new profile with unique name
  47. string path = UnityEditor.AssetDatabase.GetAssetPath (UnityEditor.Selection.activeObject);
  48. if (path == "")
  49. {
  50. path = "Assets/Enviro 3 - Sky and Weather/";
  51. }
  52. string assetPathAndName = UnityEditor.AssetDatabase.GenerateUniqueAssetPath (path + "/New " + "Quality" + ".asset");
  53. UnityEditor.AssetDatabase.CreateAsset (wpreset, assetPathAndName);
  54. UnityEditor.AssetDatabase.SaveAssets ();
  55. UnityEditor.AssetDatabase.Refresh();
  56. #endif
  57. return wpreset;
  58. }
  59. }
  60. }