UI Toolkit Scroll View Pro - Infinite Scrolling, Snapping, Paging

Links: Manual | Support Forum


✨ This asset is part of the UI Toolkit Bundle 1. ✨

✨ This asset is part of the UI Toolkit Bundle 2. ✨


An enhanced UI Toolkit ScrollView with many features and some fixes (*cough* Controller Support *cough*).


⚠️ This is an Asset for the new UI Toolkit, not UGUI or IMGUI. For RUNTIME use only!



😎 Easy to use

No coding skills required. Drag in the new ScrollViewPro control from the library and you are ready to go.


✔️ Infinite Scrolling

One checkbox and you'll have an infinite (repeating) scroll view. No extra setup needed. The scroll view will teleport your elements for you.


✔️ Snapping

Smart snapping enables you to snap to the most likely element. You can also control how the element is focused (top, middle, bottom, left, right, ...) and how the snapping animates (easing, duration, ..).


✔️ Drag Scrolling

Drag to scroll on all platforms.


✔️ Animated Scroll-To

ScrollToAnimated(child) allows you to scroll to any child element and you can also tell it how to animate (easing, duration, ...) and how to focus the child (top, center, bottom, left, right ... + margins).


✔️ Controller Support

Enable the "selectable scrollbars" attribute and BAM! Now you can focus those scroll bars with your controller.


If you enable "focus snap" then the currently selected element will be animated into view. This is especially handy for controller or keyboard users.


✔️ Quality of Life Features

Want to disable the scrollbar buttons? One-click in the UI Builder and they are gone.

Need to change the scroll wheel speed? There is an attribute for that.

Elasticity and drag scrolling for ALL platforms (not only touch).

Configurable animation frame rate (Unity's default is only 30).

Scroll position is retained across display show/hide.

...


✔️ Full Source Code

I publish this asset with full source code because as a developer I know how annoying it is to not have source code access. If you like it then please remind others to purchase the plugin. Don't just copy and paste it everywhere. Thank you ❤️


✔️ Supports Unity 2021.3+, 2022, 2023, Unity 6, ... LTS

It may work with earlier versions on 2021 too but those are not tested anymore.


📚 Lots of examples & documentation

Check out Kamgam/UIToolkitScrollViewPro/Examples.




👇 Things you should know 👇

There a manual. Please read it first.


⚠️ This is an Asset for the new UI Toolkit, not UGUI or IMGUI.


⚠️ This Asset is for RUNTIME use, not the Editor.


⚠️ Unity 2021.3 or higher is required (LTS releases strongly recommended).


If you want an endless view for a lot of DYNAMIC content (like 100s or 1000s) then I'd recommend you take a look at the ListView control. It's a special control made just for that.



✍️ Usage


1) In the UI Builder go to the "Library > Project > Kamgam > UIToolkitScrollViewPro"

2) Drag the "ScrollViewPro" into your layout.

3) Done. Now you can use it just like the default scroll view.




☎️ Support


If you have any questions please write an email. Please be patient, replies may take a few days. Please include your Asset Store Order Nr and the exact Unity version in your request. Please also try upgrading to the most recent LTS version before asking. Thank you.




❤️ If you like this asset then maybe you'll like these too:



🫠 UI Toolkit Blurred Background

Blurred backgrounds for UI Toolkit.


UI Toolkit Particles

Particle Image for your UI.


😺 UI Toolkit Visual Scripting

You're not a coder? No problem!


🚧 Exclude from build

Exclude any files and directories from build.





Release Notes

v1.6.8

* Added new Velocity-Multiplier property to make flick gestures more controllable (make the scroll view feel more snappy). Thanks to Oliver.

* Added public getter for Velocity.


v1.6.7

* Fix for big scrollOffset distances (> child bounds) in infinite scroll views. Thanks to Akeyn for suggesting this.

* Fix for dynamically adding children to infinite scroll views before the view is layouted (in OnEnable() for example).


v1.6.6

* Added new ChildEnter/Exit events to make implementing caching and templates like in list views easier. NOTICE: You have to enable the TrackChildEnterExit option on the scroll view to enable them.


v1.6.5:

* Fixed NullRef in Editor in scroll snap if panel was null RefreshFocusables(). Thanks to Oliver again for reporting this (bug was introduced in 1.6.4, my apologies).


v1.6.4:

* Fixed drag sometimes not working on touch drag (thanks to Oliver for reporting this).


v1.6.3:

* Added "SliderInt" to the list of default draggable child types.


v1.6.2:

* Sliders now do not forward their drag events by default: NOTICE: Behavioral change concerning sliders in "drag enabled" scroll views! Check out the "Dragging" section in the manual.

* Added a new attribute "draggable child types". Check out the "Dragging" section in the manual.

* Added a new attribute "nestedInteractionKind" (nested-interaction-kind) which acts similar to Unity's own scroll view NestedInteractionKind property. Noticable difference: Currently it does only work for the scroll view itself, not the children inside (like sliders). If you want sliders etc. to no forward events then you should add the "svp-drag-ingore" USS class to them.


v1.5.6:

* Fix for ScrollToAnimated if scrolling to 0/0. The animation did prematurely abort. Thanks to Nicolas for reporting this.


v1.5.5:

* Improved nested scroll behaviour (it now takes the starting drrag direction into account).

* Fixed "parent scroll view drag jumps if boundary of child scroll view is reached" bug for nested scroll view dragging.


v1.5.4:

* Added a new “Drag Event Bubbling” option that enables dragging on nested scroll views.

* Fixed nested scroll view draggin bugs (dragging on background out of child scroll view did not start drag in the past, now it does). Thanks to Nerpson for reporting the bug and testing the patches.

* Added ScrollTo and ScrollToAnimated(Vector2 scrollOffset) and ScrollToAnimatedX/Y(float scrollOffset) methods to allow scrolling to precise positions instead of child elements.


v1.5.2:

* Fixed Layouting problem with text labels.

* Added a FixLayoutContent() method for special cases (usually you won't need this).


v1.5.1:

* Fixed Add() and Remove() for infinite scroll views.


v1.5.0:

* Added "cancel-animations-on-drag" property (enabled by default).

* Fixed issue with snapping not being triggered if a scroll-to animation was cancelled. Thanks to Andrey for reporting this.


v1.4.4:

* Fixed some snapping issues with SnapPrevious() and SnapNext() methods in infinite scroll views.

* Improved snap next behaviour (faster snapping in sequence is now supported).


v1.4.3:

* Fixed isAnimating property. Thanks to Bradley for reporting it.


v1.4.2:

* Fix for long lists of focusable elements if some are disabled via code (thanks to Ke for reporting this).


v1.4.1:

* Improved support for nested scroll views. Thanks to Goodsquirrel for asking about it.

* Code clean up of some quick fixes I did for other customers in 1.3.8 (no major changes, just better and more robust code).


v1.3.8:

* Fixed double ClickEvent issue (thank to Kyle for reporting it).


v1.3.7:

* Fixed snapping getting stuck if not dragged.

* onSnap event now has a threshold (uses the drag threshold), see tooltip.


v1.3.6:

* Improved "svp-drag-ignore" it no applies recursively.

* Added new "svp-drag-allow" to enable exclusions for ignore.

* Fixed event propagation (especially in nested scroll views). Thanks to Ragavendran for reporting and testing.


v1.3.4:

* Fixed the "snap/drag" checkbox mixup in Unity 6 (my apologies). Thanks to Ragavendran for reporting it.


v1.3.3:

* Added a new "dragEnabled" attribute. You can also change it via c# like this:

ScrollView.dragEnabled = false; Thanks to Berkay for suggesting it.


v1.3.2:

* Added a SnapEvent which you can register to (works just like any normal UITK event).

* Added a vertical list demo that uses the SnapEvent.


v1.3.1:

* Fixed long text demo layout.


v1.3.0:

* Fixed scroll view not showing scroll bars if contentContainer used flex grid or similar layouts in Unity 6.


v1.2.0:

* Fixed deprecation warnings in Unity 6.


v1.1.0:

* Mouse Wheel usage will now trigger snapping if "snap" is enabled. HINT: snap direction depends on the sign of MouseWheelScrollSize.

* Added SnapNext(), SnapPrevious() methods.


v1.0.4:

* Added a special USS class named "svp-drag-ignore". If you add this to an element then this will NOT trigger the drag behaviour. Thanks to Albande for asking about this.


v1.0.3:

* Added new attribute "drag threshold". With this you can control the size of the deadzone when a drag is started on a clickable element (button). Default is 20x20 pixels.

* Fixed "scroll view position resets to 0 after adding danymic content". Thanks again to Anton for reporting this.


v1.0.2:

* Fixed a bug that prohibited the scroll view from picking up on dynamically added objects. Thanks to Anton for reporting it. It now picks up on any new child added the the contentContainer root. For nested children please call "RefreshAfterHierarchyChange()" on the scroll view to refresh the child tracking.


v1.0.1:

* New Input System Device Detector fixes (thanks to Daniel for reporting these).


v1.0.0:

* Initial release, hope you like it :-)

Basic Information
Latest Version
1.6.8 (09 Mar 2026)
Publisher
KAMGAM
Category
Textures & Materials/GUI Skins
Size
0.7 MB
Price
€36.79
Asset Rating
(6)
Extended Information
Unity Versions
2021.3.35
Render Pipelines
BIRP URP HDRP
State
Published