using System; using UnityEngine; using UnityEngine.UI; public class SignalView : MonoBehaviour, ISettingView { public static event Action SignalEmmited; [Header("Layout ссылки")] [SerializeField] private Image ButtonImage; [Header("Настройки анимации")] [SerializeField] private Color ButtonColorPressed; [SerializeField] private Color ButtonColorNormal; [Header("Звуки")] [SerializeField] private AudioClip AcceptedClip; private string signal; private bool pressed; private bool acted = false; public void Initialize(SettingDTO setting) { signal = setting.SignalValue; } public void TakeInput(int direction) { pressed = direction != 0; } private void LateUpdate() { Display(); if (pressed && !acted) EmmitSignal(); if(!pressed && acted) acted = false; } private void Display() { ButtonImage.color = pressed ? ButtonColorPressed : ButtonColorNormal; } private void EmmitSignal() { acted = true; SoundManager.PlayUi(AcceptedClip); SignalEmmited?.Invoke(signal); } }