using UnityEngine; [AddComponentMenu("Enviro/Seasons for Meshes")] public class EnviroMeshSeasons : MonoBehaviour { public Material SpringMaterial; public Material SummerMaterial; public Material AutumnMaterial; public Material WinterMaterial; private MeshRenderer myRenderer; private void Start() { myRenderer = GetComponent(); if (myRenderer == null) { Debug.LogError("Please correct script placement! We need a MeshRenderer to work with!"); base.enabled = false; } UpdateSeasonMaterial(); EnviroSky.instance.OnSeasonChanged += delegate { UpdateSeasonMaterial(); }; } private void OnEnable() { if (SpringMaterial == null) { Debug.LogError("Please assign a spring material in Inspector!"); base.enabled = false; } if (SummerMaterial == null) { Debug.LogError("Please assign a summer material in Inspector!"); base.enabled = false; } if (AutumnMaterial == null) { Debug.LogError("Please assign a autumn material in Inspector!"); base.enabled = false; } if (WinterMaterial == null) { Debug.LogError("Please assign a winter material in Inspector!"); base.enabled = false; } } private void UpdateSeasonMaterial() { switch (EnviroSky.instance.Seasons.currentSeasons) { case SeasonVariables.Seasons.Spring: myRenderer.sharedMaterial = SpringMaterial; break; case SeasonVariables.Seasons.Summer: myRenderer.sharedMaterial = SummerMaterial; break; case SeasonVariables.Seasons.Autumn: myRenderer.sharedMaterial = AutumnMaterial; break; case SeasonVariables.Seasons.Winter: myRenderer.sharedMaterial = WinterMaterial; break; } } }