using NaughtyAttributes; using UnityEngine; namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A { public class SymbolButton : Button { private static readonly int FresnelColor = Shader.PropertyToID("_FresnelColor"); private static readonly int Color = Shader.PropertyToID("_Color"); public int symbolNumber; [BoxGroup("Internal")] [Required] public MeshRenderer holoRenderer; private Material _material; private Color _puzzleColor, _solvedColor, _activeColor; private void Awake() { _material = holoRenderer.material; _puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor; _solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor; _activeColor = Engine.Runtime.Engine.DefaultEngine.theme.activeColor; } protected override void Start() { base.Start(); ButtonEvent += (_, _) => { var color = _puzzleColor; if (!Active) { color = _solvedColor; } else if (Pressed) { color = _activeColor; } _material.SetColor(FresnelColor, color); _material.SetColor(Color, color); }; } } }