/// Credit Anonymous donation /// Sourced from - https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/issues/120/horizontal-scroll-snap-scroll-bar-fix /// Updated by simonDarksideJ - Made extension support all types of scroll snap using UnityEngine.EventSystems; namespace UnityEngine.UI.Extensions { [DisallowMultipleComponent] public class ScrollSnapScrollbarHelper : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IBeginDragHandler, IEndDragHandler, IDragHandler { internal IScrollSnap ss; public void OnBeginDrag(PointerEventData eventData) { OnScrollBarDown(); } public void OnDrag(PointerEventData eventData) { ss.CurrentPage(); } public void OnEndDrag(PointerEventData eventData) { OnScrollBarUp(); } public void OnPointerDown(PointerEventData eventData) { OnScrollBarDown(); } public void OnPointerUp(PointerEventData eventData) { OnScrollBarUp(); } void OnScrollBarDown() { if (ss != null) { ss.SetLerp(false); ss.StartScreenChange(); } } void OnScrollBarUp() { ss.SetLerp(true); ss.ChangePage(ss.CurrentPage()); } } }