API v1 checking… · p50 — · 0 installs/hr
v0.10.0
Project
View on GitHub
ToshikiImagawa
New
81 0

Scrmizu provides variable infinite scroll functionality for Unity UGUI, enabling efficient rendering of large, dynamically-sized lists with items of different dimensions. It extends ScrollRect to support both standard infinite scrolling and nested scroll views, automatically managing item pooling and visibility to optimize performance while maintaining flexible item layouts.

Unity Project

Built with Unity 2020.3.45f1 · download the source from GitHub

Download 0

README

Rendered from GitHub

license release

What is Scrmizu

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

Required

  • Unity 2020.3.45f1 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.

Changelog 0 releases

No changelog entries yet. Run the admin Changelog & Version Scanner to pull from the repository's CHANGELOG.md.

Comments

No comments yet. Be the first!