private void UpdateViewportPos() { if (isDragging) { return; } float viewTrackPos = UtilityMethod.GetAxisValue(_scrollRect.content.anchoredPosition, directionStat); float viewportSize = UtilityMethod.GetRectValue(_scrollRect.viewport.rect, directionStat); //Debug.Log("_scrollViewLength " + _scrollViewLength); //Debug.Log("viewTrackPos " + viewTrackPos); //Debug.Log("viewportSize " + viewportSize); //Align ScrollRect On top, if condition meet if (_baseOrientation.AlignTopValidation(viewTrackPos, _scrollViewLength, viewportSize)) { _scrollRect.content.anchoredPosition = _baseOrientation.AlignTopTargetPos(_scrollViewLength, viewportSize, viewTrackPos); return; } //Align ScrollRect On bottom, if condition meet if (_baseOrientation.AlignBottomValidation(viewTrackPos, _scrollViewLength, viewportSize)) { _scrollRect.content.anchoredPosition = _baseOrientation.AlignBottomTargetPos(_scrollViewLength, viewportSize, viewTrackPos); if (OnLastScrollSlot != null) { OnLastScrollSlot(); } return; } }