38 lines
1018 B
C#
38 lines
1018 B
C#
|
using UnityEngine;
|
||
|
using UnityEngine.UI;
|
||
|
using UnityEngine.Events;
|
||
|
using UnityEngine.EventSystems;
|
||
|
|
||
|
public class SliderCallbackExtension : MonoBehaviour, IPointerClickHandler, IPointerUpHandler
|
||
|
{
|
||
|
private Slider _slider;
|
||
|
public UnityEvent RightClickAction = new UnityEvent();
|
||
|
public UnityEvent<float> PointerUpAction = new UnityEvent<float>();
|
||
|
public UnityEvent<float> ValueChangedAction = new UnityEvent<float>();
|
||
|
|
||
|
private void Awake()
|
||
|
{
|
||
|
_slider = GetComponent<Slider>();
|
||
|
}
|
||
|
|
||
|
public void OnPointerClick(PointerEventData eventData)
|
||
|
{
|
||
|
if (eventData.button == PointerEventData.InputButton.Right)
|
||
|
{
|
||
|
RightClickAction?.Invoke();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void OnPointerUp(PointerEventData eventData)
|
||
|
{
|
||
|
if (eventData.button == PointerEventData.InputButton.Left)
|
||
|
{
|
||
|
PointerUpAction?.Invoke(_slider.value);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void OnValueChanged(float value)
|
||
|
{
|
||
|
ValueChangedAction.Invoke(value);
|
||
|
}
|
||
|
}
|