PagedRect - Paging, Galleries, and Menus for Unity UI

PagedRect is a complete pagination solution for the Unity UI.

PagedRect can easily be used to:
- Create multi-page tutorials
- Create multi-page menus
- Create image sliders
- Create wizards
- Create tabbed views
- Create custom UI elements

Web GL Demo

Features:
- Full source code included
- Automatic button generation
- Supports Horizontal and Vertical pagination
- Navigate using on-screen buttons, keyboard input and/or swipe gestures
- Optional ScrollRect integration for continuous scrolling
- 3 optional animation types (Slide Horizontal, Slide Vertical, Fade) or none
- Optional First/Last buttons
- Optional Previous/Next buttons
- Easily enable or disable buttons as required (useful for wizards or tutorials)
- Easily switch between pages in the editor
- Add pages easily in the editor, or dynamically using code at runtime
- Use page numbers (automatically generated) or page titles on buttons (both optional)
- Optional: automatically move to the next page after a specified amount of time (useful for image sliders)


New in v1.122:
All ScrollRect based PagedRects now have an optional Scrollbar.

New in v1.20:
New 'Seamless Looping' option added for ScrollRect-based PagedRects (see updated example)


New in v1.19:
Improved support for nested ScrollRects (see Nested ScrollRect example).


New in v1.18:
New 'Page Previews' feature for building select menus, such as character or level selects (see Page Previews examples).


New in v1.16:
Can now optionally be used with XmlLayout

Online Documentation
API Documentation
Unity Forum Thread

Please note: This package is now free of charge. It will receive no further updates or support.

Release Notes

- Moved 'LimitDraggingToOnePageAtATime' to its own section in the inspector (titled 'Dragging'). It now affects regular PagedRects as well. v1.53 - Added the option to limit dragging to a single page at a time for Page Previews PagedRects - Fixed an exception which ocurred when calling RemoveAllPages - Fixed some issues with Unity 2019 v1.52 - Fixed an issue where page positioning was sometimes off in Unity 2019 - Fixed an issue where error messages were displayed when creating a new prefab using PagedRect - Fixed an issue where disabling and re-enabling dragging wouldn't work correctly - Added some new 'Set' methods for properties - 'AutomaticallyMoveToNextPage' will no longer trigger while a drag is in progress - Added a new example scene v1.51 - Experimental: New 'Animation -> Animation Curve' option which allows you to specify an optional animation curve to use when animating to new pages - Fixed an issue where page positioning was sometimes off in Unity 2019 - Fixed an issue where error messages were displayed when creating a new prefab using PagedRect v1.50 - Various minor performance improvements v1.49 - Adjusted the appearance of the default pagination for vertical PagedRects created via the menu so that they look more like the examples. - Added the 'Performance' section to the inspector with options to: - Disable automatic page collection management (to reduce PagedRect's memory usage per frame) - Fixed an issue where seamless looping would sometimes execute when it shouldn't (3 or fewer pages) v1.48 - Made an adjustment to the code which determines which page to select when dragging (before now, it would always move to the closest page, now it will do so unless the closest page is already selected, in which case it will be more likely to move to the next closest page depending on how far away it is). v1.47 - Fixed some page positioning issues with Unity 2018 - PagedRect will no longer add 'Animator' components to pages when using a ScrollRect (this was leading to some odd issues in Unity 2018). The Animator component is only necessary for Legacy PagedRects. - PagedRect_LayoutGroup now uses anchoredPosition rather than localPosition - Fixed an issue where, after removing a page, the Page collection would sometimes still contain that page if Unity did not remove the Page GameObject immediately v1.46 - RemoveAllPages() will no longer trigger a PageChangedEvent - When adding a new page to an empty PagedRect, that page will now be set as the current page - Drag and ScrollWheel events will no longer attempt to activate seamless looping functionality when the number of pages is lower than 3 (as per regular seamless looping) v1.45 - Fixed an issue where SpaceBetweenPages' was not correctly being taken into account when sizing the viewport (making the PagedRect sometimes off-center on the final page) v1.44 - If you remove the current page, PagedRect will now automatically move to to the previous page, preventing a potential StackOverflow Exception - Improved handling of the addition of new pages and removing of existing when using Seamless Looping v1.43 - Fixed an issue where PagedRect would sometimes scroll endlessly even when "Loop Endlessly" was set to false - Fixed a bug where sometimes buttons would not look correct in Unity 2017.3 v1.42 - Some internal adjustments have been made such that PagedRect now functions better when the TimeScale has been set to 0. v1.41 - You can now set icons (and their colors) for each page. You can enable this behaviour by setting the new 'ShowPageIconsOnButtons' option. - Added '(Legacy)' to the older PagedRect Prefab menu items and moved them to the bottom of the list. v1.40 - The Next and Previous buttons will now be marked as non-interactable when on the first / last pages (when Loop Endlessly is disabled), allowing you to use the 'Disabled Color' option to customize their appearance at that time (e.g. to hide them when disabled) - When dragging left on the first page, or right on the last page in a ScrollRect based PagedRect, the 'Loop Endlessly' option will now be respected v1.39 - Fixed a bug introduced in v1.38 which resulted in PagedRect objects no longer creating a canvas if one was not found in the scene v1.38 - Animation fields are now marked as "Legacy (Non-ScrollRect) Animation" - "Mobile Input" is now marked as "Legacy (Non-ScrollRect) Input" (Please note: "Use Swipe Input" can still be used with "Page Previews") - Added the "Use Swipe Input For ScrollRect" property which specifies whether or not Scrollrect-based PagedRects should accept swipe input - Fixed a bug which could cause Pages to flash when seamless looping was enabled with a 5 or fewer pages in Page Previews mode. - Fixed a potential null reference exception when using nested scrollrects. - SetCurrentPage() will now clear any animations in progress when passed a value of 'true' as the second argument (Legacy PagedRects only) - SetCurrentPage() will now reset the timer for automatically moving to the next page when it is called. - Pagination buttons are now pooled, reducing the overhead involved in changing pages/etc. Please note: if you edit the button templates at runtime, you will need to call the new InvalidateButtonPool() method in order to replicate changes to the buttons. - The Pagination section of each PagedRect is now isolated from the rest of the PagedRect and Canvas so that any layout rebuild events triggered within it are not propagated to the rest of the UI, resulting in a minor improvement to performance. - Fixed a bug preventing 'Show on Pagination' from working correctly when cleared. Pages with this value cleared will now correctly be hidden from the pagination, and will not be eligible to be selected as a 'Next', 'Previous', 'First', or 'Last' page when those buttons are used. It can still be selected by instructing the PagedRect to show that page with SetCurrentPage(). If using a ScrollRect, the page can still be scrolled to, but will not show up on the pagination. v1.37 - PagedRects will now highlight the currently visible page in the pagination when dragging long distances left or right - PagedRects using Paged Preview now support dragging. To enable this functionality: a) Ensure that PagedRect's 'Mobile Input -> Use Swipe Input' is disabled, as this will interfere with dragging left/right b) Clear the PagedRect_ScrollRect's 'Disable Dragging' property. (The PagedRect_ScrollRect component is on the same GameObject as the PagedRect component) Please note that, for now, using inertia is unsupported, but this may be supported in future versions of PagedRect. v1.36 - Improved drag-handling, drags which take longer than 0.25 seconds will no longer be considered potential swipes (which move one page forward or backwards) and instead will now always use the default behaviour (which is to center on the closest page when the drag ended). - Seamless looping will now work better than before when dragging through many pages at once. v1.35 - Fixed the positioning of the nested Scrollrect prefab's content transform - The Z-scale of pages should now always be 1 instead of 0 v1.34 - PagedRects nested within another PagedRect will no longer sometimes have their page buttons removed by the parent. v1.33 - The 'Loop Seamlessly' option will now be ignored in PagedRects with three or fewer pages (as it does not work correctly for them). v1.32 - Added a new option to 'Page Previews' PagedRects which allows you to avoid PagedRect creating Page Overlays to highlight the previous/next pages on mouse over, as well as intercepting clicks (so that you can click to go to the next/previous page). In most scenarios, the overlays should be left enabled, but if, for example, you wish to add custom click functionality of your own, then disabling the overlays allows you to add your own onclick functionality to the underlying pages and have it be triggered when clicking on the preview pages. - Reworked the 'MobileInput' component a little bit so that it handles different canvas render modes better.

Basic Information
Latest Version
1.54 (08 Nov 2019)
Publisher
Digital Legacy Games
Category
Tools/GUI
Size
8.1 MB
Price
free
Asset Rating
(67)
Extended Information
Unity Versions
5.4.3, 2019.2.0
State
Published