57 lines
1.2 KiB
C#

using System;
using UnityEngine;
using UnityEngine.UI;
public class SignalView : MonoBehaviour, ISettingView
{
public static event Action<string> 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);
}
}