Files
modular-vr/Assets/Desert/Runtime/Emission.cs
2022-11-20 12:52:22 +01:00

59 lines
1.4 KiB
C#

using UnityEngine;
namespace EscapeRoomEngine.Desert.Runtime
{
public class Emission : MonoBehaviour
{
private static readonly int EmissionColorNameID = Shader.PropertyToID("_EmissionColor");
internal bool active;
[ColorUsage(false, true)] public Color color;
private bool _previousActive;
private Color _previousColor;
private Material _material;
private void Awake()
{
_material = GetComponent<Renderer>().material;
}
private void Start()
{
ChangedToggle();
ChangedColor();
}
private void Update()
{
if (_previousActive != active)
{
ChangedToggle();
_previousActive = active;
}
if (!_previousColor.Equals(color))
{
ChangedColor();
_previousColor = color;
}
}
private void ChangedToggle()
{
if (active)
{
_material.EnableKeyword("_EMISSION");
}
else
{
_material.DisableKeyword("_EMISSION");
}
}
private void ChangedColor()
{
_material.SetColor(EmissionColorNameID, color);
}
}
}