{"id":13661873,"url":"https://github.com/Rellac-Rellac/unity-ui-manager","last_synced_at":"2025-04-25T06:30:46.207Z","repository":{"id":50313443,"uuid":"339509332","full_name":"Rellac-Rellac/unity-ui-manager","owner":"Rellac-Rellac","description":":ticket: A Simple UI Manager for rapid prototyping and ease of collaboration","archived":false,"fork":false,"pushed_at":"2021-04-27T19:21:37.000Z","size":6397,"stargazers_count":90,"open_issues_count":0,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-10T17:45:18.631Z","etag":null,"topics":["animation-transition","collaboration","csharp","design-tools","ease","loop-groups","modularity","modularization","rapid-development","rapid-prototyping","scriptableobject","transition","transition-animation","ui-components","ui-panel","ui-transitions","uikit","uimanager","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rellac-Rellac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-16T19:36:14.000Z","updated_at":"2024-10-03T06:28:47.000Z","dependencies_parsed_at":"2022-09-05T05:10:55.820Z","dependency_job_id":null,"html_url":"https://github.com/Rellac-Rellac/unity-ui-manager","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rellac-Rellac%2Funity-ui-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rellac-Rellac%2Funity-ui-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rellac-Rellac%2Funity-ui-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rellac-Rellac%2Funity-ui-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rellac-Rellac","download_url":"https://codeload.github.com/Rellac-Rellac/unity-ui-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250767005,"owners_count":21483905,"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":["animation-transition","collaboration","csharp","design-tools","ease","loop-groups","modularity","modularization","rapid-development","rapid-prototyping","scriptableobject","transition","transition-animation","ui-components","ui-panel","ui-transitions","uikit","uimanager","unity","unity3d"],"created_at":"2024-08-02T05:01:43.214Z","updated_at":"2025-04-25T06:30:41.197Z","avatar_url":"https://github.com/Rellac-Rellac.png","language":"C#","funding_links":[],"categories":["C\\#"],"sub_categories":[],"readme":"# \u003cimg src=\"https://raw.githubusercontent.com/Rellac-Rellac/unity-ui-manager/main/Assets/UIManager/Gizmos/UIManager%20Icon.png\" width=\"50\" height=\"50\" /\u003e unity-ui-manager\n\nA Simple UI Manager for rapid prototyping and ease of collaboration\n\n[![Made with Unity](https://img.shields.io/badge/Made%20with-Unity-57b9d3.svg?style=plastic\u0026logo=unity)](https://unity3d.com)\n![](https://img.shields.io/badge/license-unlicensed-lightgrey)\n\n![](https://img.shields.io/badge/-rapid%20prototyping-brightgreen)\n![](https://img.shields.io/badge/-modularity-brightgreen)\n\n![](gif_demo.gif)\n\n# Features\n-----------\n- Extremely modular - forget about merge conflicts!\n- Very fast to get a prototype up and running\n- Pretty UI Transitions just as easy as GameObject.SetActive()\n- Very simple inspector with minimal inputs, a great way to bridge the experience gap between a developer and a designer\n- Use of Animations give an incredible amount of control over transitions\n- No code required\n\n# Contents\n-----------\n- [UI Manager](https://github.com/Rellac-Rellac/unity-ui-manager#ui-manager)\n- [UI Panel](https://github.com/Rellac-Rellac/unity-ui-manager#ui-panel)\n- [UI Transition](https://github.com/Rellac-Rellac/unity-ui-manager#ui-transition)\n- [Adding an Animation](https://github.com/Rellac-Rellac/unity-ui-manager#adding-an-animation)\n- [Attribution](https://github.com/Rellac-Rellac/unity-ui-manager#attribution)\n\n# UI Manager\n------------\n**Create \u003e UI \u003e Manager**\n\nThe UI Manager is used to instantiate a starting point and flip between panels in that RectTransform. Multiple managers can be used throughout the project and they can reference any UI Panel object.\n\nA Manager must first be Initialised with a starting RectTransform before panels can be called.\n\n![](Init-example.png)\n\nAn initialised Manager can swap between panels via SetPanel(UIPanel)\n\n![](SetPanel-example.png)\n\nUI Managers can be set to have \"loop groups\" - if so, you will specify here a previous/next transition to override what is specified in the UIPanels listed on the UIManager. Panels will logically transition by calling NextPanel() and PreviousPanel() in the UIManager, the index will reset automatically. A Manager with a loop group will override the speed of the animation transition. That value is set here.\n\n![](UIManagers-example.png)\n\n# UI Panel\n----------\n**Create \u003e UI \u003e Panel**\n\nUI Panels are used to reference the panel prefab and the transition animation used for each panel.\n\nAssign a prefab here to instantiate whenever this UIPanel is called - root will be adjusted to a stretched fit over the target RectTransform of the UI Manager\n\nSpecify here the transition animation that you would like to use. The speed of the transition is specified in seconds \n\nYou can enable the passover click blocker for your smaller panels to prevent clicking unwanted background buttons\n\nEvents are available for whenever this panel is instantiated and when the transitions in/out have ended\n\n![](UIPanel-example.png)\n\n# UI Transition\n----------------\n**Create \u003e UI \u003e Transition**\n\nUI Transitions are references by the UIPanel to know which animation to play and which way to order the panels. The animation must be listed in the Animator Controller of the UIRoot prefab\n\nHere you can set the \"Panel on Top\" to be either the panel currently coming in, or the panel currently going away.\n\nSee \"Adding an Animation\" for further info on the specifics of the required animation\n\n![](UITransition-example.png)\n\n\n# UI Panel Listener\n--------------------\nUIPanelListener can be added to any GameObject and will listen for the relevant events of any specified panel. This can be used to trigger an animation within the panel once it has transitioned or to hide a GameObject until the transition has finished.\n\nAvailable events to register to:\n\n![](Listener-example.png)\n\n# Adding an Animation\n----------------------\nAnimations can be added to the prefab located at UIManager/Resources/UIManager/UI Root\n\nDo not adjust the sizeDelta in your animation - this value is adjusted by the UIFitter on the UI Root prefab. It will automatically adjust the Rect to fit the specified parent Rect\n\nThe \"Parent_In\" object is the panel that is currently coming in and will end as the main panel the user is looking at\n\nThe \"Parent_Out\" object is the panel that is currently already in and will end out of sight of the user\n\nIf a new GameObject is required to create your bespoke transition, make sure that the starting pose is in its \"off\"\nstate so that other animations don't need to reference it - see the behaviour of the currently disabled GameObjects\nunder the UI Root prefab animations\n\nAnimations should last 1 second each so that we can specify the speed in seconds - don't worry if the transition is\ntoo fast at 1 second - simply specify a larger time in your UIPanel Object\n\nIf you want the out parent to clear its contents early (default is at the end of the transition), simply add an Animation Event to your Animation and call ClearOutParent()\n\n# Attribution\n--------------\nI've used some icons under the creative commons license for this manager\n\nYou shouldn't need to add these attributions your application, as they only show in the editor:\n\nUIManager\n- Electronic Data Storage by ProSymbols from the Noun Project\n\nUIPanel\n- page by Kirsh from the Noun Project\n\nUITransition\n- play by Royyan Razka from the Noun Project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRellac-Rellac%2Funity-ui-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRellac-Rellac%2Funity-ui-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRellac-Rellac%2Funity-ui-manager/lists"}