// -------------------------------------------------------------------------------------------------------------------- // // Part of: Photon Unity Utilities, // // // Used on Buttons inside UI lists to prevent scrollRect parent to scroll when down on buttons. // // developer@exitgames.com // -------------------------------------------------------------------------------------------------------------------- using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Photon.Pun.UtilityScripts { /// /// Button inside scroll list will stop scrolling ability of scrollRect container, so that when pressing down on a button and draggin up and down will not affect scrolling. /// this doesn't do anything if no scrollRect component found in Parent Hierarchy. /// public class ButtonInsideScrollList : MonoBehaviour, IPointerDownHandler, IPointerUpHandler { ScrollRect scrollRect; // Use this for initialization void Start () { scrollRect = GetComponentInParent(); } #region IPointerDownHandler implementation void IPointerDownHandler.OnPointerDown (PointerEventData eventData) { if (scrollRect !=null) { scrollRect.StopMovement(); scrollRect.enabled = false; } } #endregion #region IPointerUpHandler implementation void IPointerUpHandler.OnPointerUp (PointerEventData eventData) { if (scrollRect !=null && !scrollRect.enabled) { scrollRect.enabled = true; } } #endregion } }