using UnityEngine; namespace Escape_Room_Engine.Desert.Scripts { 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().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); } } }