Skip to content

Variable infinite scroll in Unity UI

License

Notifications You must be signed in to change notification settings

SalavatR/Scrmizu

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license release

What is Scrmizu

Scrmizu is variable infinite scroll and extended UnityEngine.UI.ScrollRect for Unity UGUI.

Required

  • Unity 2018.x or later.
  • Scripting Runtime Version 4.6 Eq.

Install

  1. Download Scrmizu.unitypackage here.
  2. Import the contents of the Scrmizu folder to the Packages or Assets folder.
  3. Optionally import Scrmizu.Sample.unitypackage.

Quick start

Infinite Scroll View

To create a Infinite Scroll View in the Unity Editor, go to GameObject → UI → Infinite Scroll View.

Prepare ScrollItem prefab to be repeatedly displayed by infinite scroll.

public class SimpleInfiniteScrollItem : MonoBehaviour, IInfiniteScrollItem
{
    /// <summary>
    /// ScrollItem enters display area and updates display item data.
    /// </summary>
    /// <param name="data"></param>
    public void UpdateItemData(object data)
    {
        if (!(data is float width)) return;
        gameObject.SetActive(true);
        if (!(gameObject.transform is RectTransform rectTransform)) return;
        rectTransform.sizeDelta = new Vector2(width, rectTransform.sizeDelta.y);
    }

    /// <summary>
    /// Hide ScrollItem because it has left the display area.
    /// </summary>
    public void Hide()
    {
        gameObject.SetActive(false);
    }
}

Call InfiniteScrollRect.SetItemData to set the item data.

[RequireComponent(typeof(InfiniteScrollRect))]
public class SimpleInfiniteScrollController : MonoBehaviour
{
    private InfiniteScrollRect _infiniteScrollRect;

    private InfiniteScrollRect InfiniteScrollRect => _infiniteScrollRect != null
        ? _infiniteScrollRect : _infiniteScrollRect = GetComponent<InfiniteScrollRect>();

    private void Awake()
    {
        InfiniteScrollRect.SetItemData(new object[]
        {
            200f, 
            300f, 
            400f, 
            500f, 
            600f, 
            700f, 
            800f, 
            900f, 
            1000f
        });
    }
}

By scrolling, you can confirm that the width of the scroll item is updated for each set data (width).

Nested Scroll View

To create a Nested Scroll View in the Unity Editor, go to GameObject → UI → Nested Scroll View. Put it under the Scroll View container.

When scrolling in the non-scroll direction of NestedScrollView, scroll event is sent to the parent ScrollView.

Paged Scroll View

To create a Paged Scroll View in the Unity Editor, go to GameObject → UI → Paged Scroll View. Create multiple page content items under content.

One item is displayed in the scroll direction in the view area. Pauses the page each time scroll.

About

Variable infinite scroll in Unity UI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%