69 lines
1.3 KiB
C#
69 lines
1.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
public class GUIObjectSound : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, ISubmitHandler, ISelectHandler, IEventSystemHandler
|
|
{
|
|
public string soundEnter = "btn_hover";
|
|
|
|
public string soundClick = "btn_pressed";
|
|
|
|
public bool clickSoundOnPointerUp;
|
|
|
|
private Selectable selectable;
|
|
|
|
public bool isMouseOver;
|
|
|
|
private void Awake()
|
|
{
|
|
selectable = GetComponent<Selectable>();
|
|
}
|
|
|
|
public void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
if (selectable.interactable)
|
|
{
|
|
AudioController.Play(soundEnter);
|
|
}
|
|
isMouseOver = true;
|
|
}
|
|
|
|
public void OnPointerExit(PointerEventData eventData)
|
|
{
|
|
isMouseOver = false;
|
|
}
|
|
|
|
public void OnPointerDown(PointerEventData eventData)
|
|
{
|
|
}
|
|
|
|
public void OnPointerUp(PointerEventData eventData)
|
|
{
|
|
if (clickSoundOnPointerUp && selectable.interactable)
|
|
{
|
|
AudioController.Play(soundClick);
|
|
}
|
|
}
|
|
|
|
public void OnPointerClick(PointerEventData eventData)
|
|
{
|
|
if (!clickSoundOnPointerUp && selectable.interactable)
|
|
{
|
|
AudioController.Play(soundClick);
|
|
}
|
|
}
|
|
|
|
public void OnSelect(BaseEventData eventData)
|
|
{
|
|
if (!isMouseOver)
|
|
{
|
|
AudioController.Play(soundEnter);
|
|
}
|
|
}
|
|
|
|
public void OnSubmit(BaseEventData eventData)
|
|
{
|
|
AudioController.Play(soundClick);
|
|
}
|
|
}
|