using UnityEngine; using UnityEngine.UI; namespace Ui.Screens { public class ScreenThreshold : MonoBehaviour { [SerializeField] private ScrollRect _scrollbar; private float _startPosition = float.MinValue; private void OnEnable() { if (_scrollbar == null) return; _scrollbar.onValueChanged.AddListener(Call); ScreenContainer.DragEvent += OnDragEvent; } private void OnDisable() { if (_scrollbar == null) return; ScreenContainer.DragEvent -= OnDragEvent; } private void Update() { if (Input.GetMouseButtonUp(0)) { _startPosition = float.MinValue; } } private void Call(Vector2 arg0) { if (_startPosition <= float.MinValue) _startPosition = Input.mousePosition.y; if (_scrollbar.vertical && !ScreenContainer.Hold && Mathf.Abs(Input.mousePosition.y - _startPosition) > 0.05f * Screen.height) ScreenContainer.Hold = true; } private void OnDragEvent(bool obj) { _scrollbar.vertical = !obj; } } }