diff --git a/Assets/FancyScrollView/Sources/Runtime/Scroller/Scroller.cs b/Assets/FancyScrollView/Sources/Runtime/Scroller/Scroller.cs index 85fbff1..8db3fc0 100644 --- a/Assets/FancyScrollView/Sources/Runtime/Scroller/Scroller.cs +++ b/Assets/FancyScrollView/Sources/Runtime/Scroller/Scroller.cs @@ -597,6 +597,24 @@ float CalculateMovementAmount(float sourcePosition, float destPosition) return amount; } - float CircularPosition(float p, int size) => size < 1 ? 0 : p < 0 ? size - 1 + (p + 1) % size : p % size; + float CircularPosition(float p, int size) + { + if (size < 1) + { + return 0f; + } + + if (p >= 0) + { + return p % size; + } + + if (movementType == MovementType.Unrestricted) + { + return size - 1 + (p + 1) % size; + } + + return 0f; + } } }