HomeSunLight.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Experimental.Rendering;
  5. using UnityEngine.Rendering;
  6. public class HomeSunLight : MonoBehaviour
  7. {
  8. // Start is called before the first frame update
  9. public Light mainLight;
  10. public GameObject targetCamera;
  11. public Material daySkybox;
  12. public Material nightSkybox;
  13. void Start()
  14. {
  15. GameObject homeLight = GameObject.Find("Home Light");
  16. int hour = System.DateTime.Now.Hour;
  17. //hour = 7;
  18. float rotateAngle = (12 - hour) * 13;
  19. //print(rotateAngle);
  20. if ( hour >=22 || hour < 5) // Éîҹʱ¼ä
  21. {
  22. mainLight.intensity = 0.8f;
  23. //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
  24. UnityEngine.RenderSettings.skybox = nightSkybox;
  25. UnityEngine.RenderSettings.ambientIntensity = 0.2f;
  26. UnityEngine.RenderSettings.reflectionIntensity = 0.2f;
  27. homeLight.GetComponent<Light>().intensity = 0.3f;
  28. }
  29. else if (hour < 6 || hour >= 18)
  30. {
  31. // night time
  32. mainLight.intensity = 0.1f;
  33. //targetCamera.GetComponent<Camera>().backgroundColor = new Color(22, 42, 113, 239);
  34. UnityEngine.RenderSettings.skybox = nightSkybox;
  35. UnityEngine.RenderSettings.ambientIntensity = 0.2f;
  36. UnityEngine.RenderSettings.reflectionIntensity = 0.2f;
  37. homeLight.GetComponent<Light>().intensity = 1f;
  38. }
  39. else
  40. {
  41. Debug.Log("day time");
  42. // day time
  43. mainLight.intensity = 0.7f;
  44. //targetCamera.GetComponent<Camera>().clearFlags = CameraClearFlags.SolidColor;
  45. //targetCamera.GetComponent<Camera>().backgroundColor = new Color(139, 202, 255, 203);
  46. UnityEngine.RenderSettings.ambientMode = AmbientMode.Flat;
  47. UnityEngine.RenderSettings.ambientLight = new Color32(200,200,200,180);
  48. UnityEngine.RenderSettings.skybox = daySkybox;
  49. UnityEngine.RenderSettings.ambientIntensity = 1f;
  50. UnityEngine.RenderSettings.reflectionIntensity = 0.5f;
  51. homeLight.GetComponent<Light>().intensity = 0.9f;
  52. }
  53. DynamicGI.UpdateEnvironment();
  54. }
  55. // Update is called once per frame
  56. void Update()
  57. {
  58. }
  59. }