Files

87 lines
2.3 KiB
C#
Raw Permalink Normal View History

using UnityEngine;
using UnityEngine.EventSystems;
2023-08-05 23:39:25 +03:00
using UnityEngine.UI;
public class BaseToggle : BaseButton
{
2023-08-28 02:38:39 +03:00
[SerializeField] protected BaseTogglesGroup _baseTogglesGroup = default;
[SerializeField] protected bool _selectOnStart = default;
2023-08-05 23:39:25 +03:00
[SerializeField] private BaseMenu[] _childMenues = default;
protected override void Awake()
{
base.Awake();
_resetToDefault = false;
if (_selectOnStart)
{
2023-08-12 22:32:45 +03:00
_button.onClick?.Invoke();
_isPressed = true;
_animator.SetBool("IsPress", true);
}
}
2023-08-28 02:38:39 +03:00
public virtual void ResetToggle()
{
2023-08-05 23:39:25 +03:00
for (int i = 0; i < _childMenues.Length; i++)
_childMenues[i].Hide();
_isPressed = false;
_animator.SetBool("IsHover", false);
_animator.SetBool("IsPress", false);
}
2023-09-25 16:24:19 +03:00
public virtual void ResetHover() { }
public override void OnPointerDown(PointerEventData eventData)
{
2023-08-05 23:39:25 +03:00
_baseTogglesGroup.ActiveToggle = this;
_isPressed = true;
_baseTogglesGroup.CheckToggles();
base.OnPointerDown(eventData);
}
2023-08-05 23:39:25 +03:00
2023-08-28 02:38:39 +03:00
public override void OnSelect(BaseEventData eventData)
{
//_baseTogglesGroup.CheckToggles();
_audio.Sound("Pressed").Play();
_animator.SetBool("IsHover", true);
}
public override void OnDeselect(BaseEventData eventData)
{
_isPressed = false;
_animator.SetBool("IsHover", false);
_animator.SetBool("IsPress", false);
}
public override void Activate()
{
_baseTogglesGroup.ActiveToggle = this;
_isPressed = true;
_baseTogglesGroup.CheckToggles();
_audio.Sound("Pressed").Play();
_animator.SetBool("IsHover", true);
2023-09-22 16:54:55 +03:00
_animator.SetBool("IsPress", true);
_button.onClick?.Invoke();
}
// public override void Deactivate()
// {
// _button.enabled = false;
// _animator.SetBool("IsDeactivated", true);
// }
2023-08-05 23:39:25 +03:00
private void OnEnable()
{
if (_baseTogglesGroup.ActiveToggle == this)
{
2023-08-12 22:32:45 +03:00
_button.onClick?.Invoke();
2023-08-05 23:39:25 +03:00
_isPressed = true;
_animator.SetBool("IsPress", true);
}
}
private void OnDisable()
{
for (int i = 0; i < _childMenues.Length; i++)
_childMenues[i].Hide();
}
}