EnvironmentCom.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. [ExecuteInEditMode]
  5. public class EnvironmentCom : MonoBehaviour
  6. {
  7. [Range(0,1)]
  8. public float _SkyTime;
  9. public Transform _SunTrans;
  10. public Color SkyUpColor1;
  11. [Range(0,1)]
  12. public float SkyUpColor2Hight=0.8f;
  13. public Color SkyUpColor2;
  14. public Color SkyUpColor2Back;
  15. public Color SkyDownColor;
  16. public float HorizontalColorLength;
  17. [ColorUsage(false, true)]
  18. public Color HorizontalColor;
  19. [ColorUsage(false, true)]
  20. public Color HorizontalColorBack;
  21. public float SunSize;
  22. [ColorUsage(false, true)]
  23. public Color SunColor;
  24. [ColorUsage(false, true)]
  25. public Color SunGlowColor;
  26. #region ID
  27. int SkyUpColor1ID;
  28. int SkyUpColor2ID;
  29. int SkyUpColor2BackID;
  30. int SkyUpColor2HightID;
  31. int SkyDownColorID;
  32. int HorizontalColorID;
  33. int HorizontalColorBackID;
  34. int HorizontalColorLengthID;
  35. int SunDirID;
  36. int SunSizeID;
  37. int SunColorID;
  38. int SunGlowColorID;
  39. #endregion
  40. private void Awake()
  41. {
  42. GetKey();
  43. }
  44. void Update()
  45. {
  46. UpdateProperty();
  47. }
  48. void GetKey() {
  49. SkyUpColor1ID = Shader.PropertyToID("_SkyUpColor1");
  50. SkyUpColor2HightID = Shader.PropertyToID("_SkyUpColor2Hight");
  51. SkyUpColor2ID = Shader.PropertyToID("_SkyUpColor2");
  52. SkyUpColor2BackID = Shader.PropertyToID("_SkyUpColor2Back");
  53. SkyDownColorID = Shader.PropertyToID("_SkyDownColor");
  54. HorizontalColorID = Shader.PropertyToID("_HorizontalColor");
  55. HorizontalColorBackID = Shader.PropertyToID("_HorizontalColorBack");
  56. HorizontalColorLengthID = Shader.PropertyToID("_HorizontalColorLength");
  57. SunDirID = Shader.PropertyToID("_SunDir");
  58. SunSizeID = Shader.PropertyToID("_SunSize");
  59. SunColorID = Shader.PropertyToID("_SunColor");
  60. SunGlowColorID = Shader.PropertyToID("_SunGlowColor");
  61. }
  62. void UpdateProperty() {
  63. Shader.SetGlobalColor(SkyUpColor1ID,SkyUpColor1);
  64. Shader.SetGlobalFloat(SkyUpColor2HightID, SkyUpColor2Hight);
  65. Shader.SetGlobalColor(SkyUpColor2ID, SkyUpColor2);
  66. Shader.SetGlobalColor(SkyUpColor2BackID, SkyUpColor2Back);
  67. Shader.SetGlobalColor(SkyDownColorID, SkyDownColor);
  68. Shader.SetGlobalColor(HorizontalColorID, HorizontalColor);
  69. Shader.SetGlobalColor(HorizontalColorBackID, HorizontalColorBack);
  70. Shader.SetGlobalFloat(HorizontalColorLengthID, HorizontalColorLength);
  71. Shader.SetGlobalVector(SunDirID, _SunTrans?-_SunTrans.forward:Vector3.one);
  72. Shader.SetGlobalFloat(SunSizeID, SunSize);
  73. Shader.SetGlobalColor(SunColorID, SunColor);
  74. Shader.SetGlobalColor(SunGlowColorID, SunGlowColor);
  75. }
  76. }