EnviroMicrosplatIntegration.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using UnityEngine;
  2. using System.Collections;
  3. namespace Enviro
  4. {
  5. [ExecuteInEditMode]
  6. [AddComponentMenu("Enviro 3/Integrations/MicroSplat Integration")]
  7. public class EnviroMicrosplatIntegration : MonoBehaviour
  8. {
  9. [Header("Wetness")]
  10. public bool UpdateWetness = true;
  11. [Range(0f, 1f)]
  12. public float minWetness = 0f;
  13. [Range(0f, 1f)]
  14. public float maxWetness = 1f;
  15. [Header("Rain Ripples")]
  16. public bool UpdateRainRipples = true;
  17. [Header("Puddle Settings")]
  18. public bool UpdatePuddles = true;
  19. [Header("Stream Settings")]
  20. public bool UpdateStreams = true;
  21. [Header("Snow Settings")]
  22. public bool UpdateSnow = true;
  23. //[Header("Wind Settings")]
  24. //public bool UpdateWindStrength = true;
  25. //public bool UpdateWindRotation = true;
  26. void Update ()
  27. {
  28. if (EnviroManager.instance == null || EnviroManager.instance.Environment == null)
  29. return;
  30. if (UpdateSnow){
  31. Shader.SetGlobalFloat ("_Global_SnowLevel", EnviroManager.instance.Environment.Settings.snow);
  32. }
  33. if (UpdateWetness) {
  34. float currWetness = Mathf.Clamp(EnviroManager.instance.Environment.Settings.wetness, minWetness, maxWetness);
  35. Shader.SetGlobalVector("_Global_WetnessParams", new Vector2(minWetness, currWetness));
  36. }
  37. if (UpdatePuddles) {
  38. Shader.SetGlobalFloat("_Global_PuddleParams", EnviroManager.instance.Environment.Settings.wetness);
  39. }
  40. if (UpdateRainRipples)
  41. {
  42. if(EnviroManager.instance.Effects != null)
  43. {
  44. float rainIntensity = Mathf.Clamp(EnviroManager.instance.Effects.Settings.rain1Emission + EnviroManager.instance.Effects.Settings.rain2Emission,0f,1f);
  45. Shader.SetGlobalFloat("_Global_RainIntensity", rainIntensity);
  46. }
  47. }
  48. if (UpdateStreams) {
  49. Shader.SetGlobalFloat("_Global_StreamMax", EnviroManager.instance.Environment.Settings.wetness);
  50. }
  51. }
  52. }
  53. }