75 lines
1.8 KiB
C#
75 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using FMODUnity;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.Serialization;
|
|
using UnityEngine.UI;
|
|
|
|
public class NoisyUIElement : MonoBehaviour, ISelectHandler, ISubmitHandler, IPointerClickHandler, IMoveHandler
|
|
{
|
|
[SerializeField]
|
|
[EventRef]
|
|
private string ClickSfx;
|
|
|
|
[SerializeField]
|
|
[EventRef]
|
|
private string BloopSfx;
|
|
|
|
[SerializeField]
|
|
private bool _clickHorizontal;
|
|
|
|
[SerializeField]
|
|
private bool _clickVertical;
|
|
|
|
private void PlayClickSfx()
|
|
{
|
|
if ( !string.IsNullOrEmpty( ClickSfx ) )
|
|
{
|
|
RuntimeManager.PlayOneShot( ClickSfx );
|
|
}
|
|
}
|
|
|
|
private void PlayBloopSfx()
|
|
{
|
|
if ( !string.IsNullOrEmpty( BloopSfx ) )
|
|
{
|
|
RuntimeManager.PlayOneShot( BloopSfx );
|
|
}
|
|
}
|
|
|
|
public void OnSelect( BaseEventData eventData )
|
|
=> PlayClickSfx();
|
|
|
|
public void OnSubmit( BaseEventData eventData )
|
|
=> PlayBloopSfx();
|
|
|
|
public void OnPointerClick( PointerEventData eventData )
|
|
=> PlayBloopSfx();
|
|
|
|
public void OnDrag( PointerEventData eventData )
|
|
=> PlayBloopSfx();
|
|
|
|
public void OnMove( AxisEventData eventData )
|
|
{
|
|
switch ( eventData.moveDir )
|
|
{
|
|
case MoveDirection.Left:
|
|
case MoveDirection.Right:
|
|
if ( _clickHorizontal )
|
|
{
|
|
PlayClickSfx();
|
|
}
|
|
break;
|
|
|
|
case MoveDirection.Up:
|
|
case MoveDirection.Down:
|
|
if ( _clickVertical )
|
|
{
|
|
PlayClickSfx();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|