Skip to content

Commit

Permalink
Merged in fix/NextPreviousScrollsnapFix (pull request #133)
Browse files Browse the repository at this point in the history
Scroll Snap buttons fix
  • Loading branch information
SimonDarksideJTest committed Apr 23, 2022
2 parents 30b65fb + fc6ea60 commit 5bd7df1
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 8 deletions.
14 changes: 6 additions & 8 deletions Runtime/Scripts/Layout/ScrollSnapBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI.Extensions;

namespace UnityEngine.UI.Extensions
{
Expand Down Expand Up @@ -314,6 +315,8 @@ internal void UpdateVisible()
//Function for switching screens with buttons
public void NextScreen()
{
_scroll_rect.velocity = Vector2.zero;

if (_currentPage < _screens - 1 || _isInfinite)
{
if (!_lerp) StartScreenChange();
Expand All @@ -336,6 +339,8 @@ public void NextScreen()
//Function for switching screens with buttons
public void PreviousScreen()
{
_scroll_rect.velocity = Vector2.zero;

if (_currentPage > 0 || _isInfinite)
{
if (!_lerp) StartScreenChange();
Expand Down Expand Up @@ -515,15 +520,8 @@ private void OnValidate()
MaskBuffer = 1;
}

if (PageStep < 0)
{
PageStep = 0;
}
PageStep.Clamp(0, 9);

if (PageStep > 8)
{
PageStep = 9;
}
var infiniteScroll = GetComponent<UI_InfiniteScroll>();
if (ChildObjects != null && ChildObjects.Length > 0 && infiniteScroll != null && !infiniteScroll.InitByUser)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,27 @@ public static bool IsPrefab(this GameObject gameObject)
!gameObject.hideFlags.HasFlag(HideFlags.HideInHierarchy);
// I don't care about GameObjects *inside* prefabs, just the overall prefab.
}

/// <summary>
/// Generic clamp method to limt a value between a range of values
/// </summary>
/// <typeparam name="T"><see cref="IComparable"/> data type</typeparam>
/// <param name="value">Value to clamp</param>
/// <param name="min">Minimum value</param>
/// <param name="max">Maximum value</param>
/// <returns></returns>
public static T Clamp<T>(this T value, T min, T max) where T : IComparable<T>
{
if (value.CompareTo(min) < 0)
{
value = min;
}
if (value.CompareTo(max) > 0)
{
value = max;
}

return value;
}
}
}

0 comments on commit 5bd7df1

Please sign in to comment.