{"id":26400090,"url":"https://github.com/mopsicus/infinite-scroll-unity","last_synced_at":"2025-03-17T14:01:16.449Z","repository":{"id":45522292,"uuid":"66823928","full_name":"mopsicus/uis","owner":"mopsicus","description":"Unity infinite scroller (UIS) is an extension allows you to use the ScrollRect control as an infinite scroller/spinner","archived":false,"fork":false,"pushed_at":"2024-09-26T11:54:35.000Z","size":1737,"stargazers_count":473,"open_issues_count":3,"forks_count":69,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-05T00:02:15.595Z","etag":null,"topics":["assets","data-driven","listview","recyclable","scrollrect-control","scrollview","spinner","unity3d"],"latest_commit_sha":null,"homepage":"","language":"ShaderLab","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mopsicus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-29T08:03:41.000Z","updated_at":"2025-03-04T01:52:08.000Z","dependencies_parsed_at":"2024-04-02T09:53:29.914Z","dependency_job_id":"8dcec82d-15fb-4be9-aae6-19d36b61837b","html_url":"https://github.com/mopsicus/uis","commit_stats":null,"previous_names":["mopsicus/uis","mopsicus/infinite-scroll-unity"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mopsicus%2Fuis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mopsicus%2Fuis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mopsicus%2Fuis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mopsicus%2Fuis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mopsicus","download_url":"https://codeload.github.com/mopsicus/uis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244047608,"owners_count":20389205,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assets","data-driven","listview","recyclable","scrollrect-control","scrollview","spinner","unity3d"],"created_at":"2025-03-17T14:00:42.851Z","updated_at":"2025-03-17T14:01:16.436Z","avatar_url":"https://github.com/mopsicus.png","language":"ShaderLab","funding_links":[],"categories":["C#"],"sub_categories":[],"readme":"\u003ca href=\"./README.md\"\u003e![Static Badge](https://img.shields.io/badge/english-118027)\u003c/a\u003e\n\u003ca href=\"./README.ru.md\"\u003e![Static Badge](https://img.shields.io/badge/русский-0390fc)\u003c/a\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"UIS (Unity infinite scroller)\" height=\"256\" width=\"448\" src=\"Media/logo-uis.png\"\u003e\n\u003c/p\u003e\n\u003ch3 align=\"center\"\u003eUIS\u003c/h3\u003e\n\u003ch4 align=\"center\"\u003eUnity infinite scroller for ScrollRect component\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"#quick-start\"\u003eQuick start\u003c/a\u003e · \u003ca href=\"/Documentation~/index.md\"\u003eDocumentation\u003c/a\u003e · \u003ca href=\"https://github.com/mopsicus/uis/issues\"\u003eReport Bug\u003c/a\u003e\n\u003c/p\u003e\n\n# 💬 Overview\n\nThis extension allows you to use the `ScrollRect` control as an infinite scroller/spinner. It is a fast, easy and mobile-friendly way to create lists with thousands of rows without lags and jitters.\n\n### Problem\n\nIn Unity, you can use the `ScrollRect` control to scroll multiple objects in the UI. But when there are too many objects in the container, you will see lags and jitter when scrolling.\n\n### Solution\n\nThis script uses a data-driven method to scroll and display list items. This means that you have the data of the list items and their height or width, and the script creates and shows only those items that fit on the screen. When you want to scroll the list, the list items at the top or bottom move in opposite directions.\n\n# ✨ Features\n\n- easy, light, mobile-friendly, just one script\n- list items are fully customizable to fit your project\n- dynamic, data-driven lists\n- efficient reusing of list items\n- `pull-to-refresh` feature\n- `scroll-to` feature\n- diffirent list items height/width support\n\n# 🚀 Usage\n\n### Installation\n\nGet it from [releases page](https://github.com/mopsicus/uis/releases) or add the line to `Packages/manifest.json` and module will be installed directly from Git url:\n\n```\n\"com.mopsicus.uis\": \"https://github.com/mopsicus/uis.git\",\n```\n\n### Quick start\n\nSee the samples section to get a [demo app](./Samples~/Demo). This demo contains 6 scenes with different ways to use UIS. It will show you how to initiate and use it in your app, how to use pull-to-refresh feature, how to use lists with different height/width of elements.\n\n_Tested in Unity 2020.3.x._\n\n### How to use\n\n1. Add `UIS` to uses section\n2. Add `Scroll View` component to game object on UI canvas\n3. Add `Scroller` script after it\n4. Setup script as you need\n5. Add callbacks and init list\n\n```csharp\nusing UIS;\nusing UnityEngine;\n\npublic class Demo : MonoBehaviour {\n\n    [SerializeField]\n    Scroller List = null;\n\n    void Start() {\n        List.OnFill += OnFillItem;\n        List.OnHeight += OnHeightItem;\n        List.InitData(100);\n    }\n\n    void OnFillItem(int index, GameObject item) {\n        // get data from your storage, JSON, etc\n        //\n        // var data = jsonArray[index]; for example\n        //\n        // fill list item\n        //\n        // item.GetComponent\u003cItemController\u003e().Set(data);\n    }\n\n    int OnHeightItem(int index) {\n        // get item height from your storage, JSON, etc\n        // or calc it here and return\n        //\n        return 100;\n    }\n}\n```\n\nRead the [docs](Documentation~/index.md) for more details.\n\n# 🏗️ Contributing\n\nWe invite you to contribute and help improve UIS. Please see [contributing document](./CONTRIBUTING.md). 🤗\n\nYou also can contribute to the uis project by:\n\n- Helping other users \n- Monitoring the issue queue\n- Sharing it to your socials\n- Referring it in your projects\n\n### Environment setup\n\nFor a better experience, you can set up an environment for local development. Since this project is developed with VS Code, all settings are provided for it.\n\n1. Use `Monokai Pro` or `eppz!` theme\n2. Use `FiraCode` font\n3. Install extensions:\n    - C#\n    - C# Dev Kit\n    - Unity\n4. Enable `Inlay Hints` in C# extension\n5. Install `Visual Studio Editor` package in Unity\n6. Put `.editorconfig` in root project directory\n7. Be cool\n\n# 🤝 Support\n\nYou can support the project by using any of the ways below:\n\n* Bitcoin (BTC): 1VccPXdHeiUofzEj4hPfvVbdnzoKkX8TJ\n* USDT (TRC20): TMHacMp461jHH2SHJQn8VkzCPNEMrFno7m\n* TON: UQDVp346KxR6XxFeYc3ksZ_jOuYjztg7b4lEs6ulEWYmJb0f\n* Visa, Mastercard via [Boosty](https://boosty.to/mopsicus/donate)\n* MIR via [CloudTips](https://pay.cloudtips.ru/p/9f507669)\n\n# ✉️ Contact\n\nBefore you ask a question, it is best to search for existing [issues](https://github.com/mopsicus/uis/issues) that might help you. Anyway, you can ask any questions and send suggestions by [email](mailto:mail@mopsicus.ru) or [Telegram](https://t.me/mopsicus).\n\n# 🔑 License\n\nUIS is licensed under the [MIT License](./LICENSE.md). Use it for free and be happy. 🎉","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmopsicus%2Finfinite-scroll-unity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmopsicus%2Finfinite-scroll-unity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmopsicus%2Finfinite-scroll-unity/lists"}