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 PointerUpAction = new UnityEvent(); public UnityEvent ValueChangedAction = new UnityEvent(); private void Awake() { _slider = GetComponent(); } 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); } }