Scrmizu
Scrmizu provides variable infinite scroll functionality for Unity UGUI, extending ScrollRect to efficiently display large lists with dynamically-sized items. It includes pre-built Infinite Scroll View and Nested Scroll View components that automatically manage item visibility and recycling, reducing memory overhead while maintaining smooth performance.
com.comcreate-info.scrmizu 
Install via UPM
Add to Unity Package Manager using this URL
https://www.pkglnk.dev/scrmizu.git?path=Assets/Scrmizu README Markdown
Copy this to your project's README.md
## Installation
Add **Scrmizu** to your Unity project via Package Manager:
1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/scrmizu.git?path=Assets%2FScrmizu
```
[](https://www.pkglnk.dev/pkg/scrmizu)README
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
- Download Scrmizu.unitypackage here.
- Import the contents of the Scrmizu folder to the Packages or Assets folder.
- 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.
No comments yet. Be the first!