74 lines
1.6 KiB
C#
74 lines
1.6 KiB
C#
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<MeshRenderer>();
|
|
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;
|
|
}
|
|
}
|
|
}
|