{"id":14960570,"url":"https://github.com/rimurudev/unity-curtain","last_synced_at":"2025-10-24T18:31:53.108Z","repository":{"id":206713646,"uuid":"717545918","full_name":"RimuruDev/Unity-Curtain","owner":"RimuruDev","description":"The Curtain system in Unity is a robust and versatile tool designed to manage transitions and loading screens across your games or applications. It serves as a 'curtain', hiding the scene changes or loading processes that happen in the background, providing a seamless experience for the player.","archived":false,"fork":false,"pushed_at":"2023-11-12T14:29:20.000Z","size":1978,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T03:37:52.755Z","etag":null,"topics":["curtain","rimuru-dev","rimurudev","unity","unity-asset","unity-curtain","unity-packages","unity-plugin","unity-utilities","utilities","utility"],"latest_commit_sha":null,"homepage":"","language":"C#","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/RimuruDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2023-11-11T19:48:05.000Z","updated_at":"2024-05-20T08:23:25.000Z","dependencies_parsed_at":"2024-09-22T11:02:32.631Z","dependency_job_id":"5932bee7-42de-4195-a0c3-a6425f611c57","html_url":"https://github.com/RimuruDev/Unity-Curtain","commit_stats":{"total_commits":14,"total_committers":2,"mean_commits":7.0,"dds":0.5,"last_synced_commit":"9e1fa236c5e37aecec3720f5092aa2169d6d539d"},"previous_names":["rimurudev/unity-curtain"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-Curtain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-Curtain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-Curtain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-Curtain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RimuruDev","download_url":"https://codeload.github.com/RimuruDev/Unity-Curtain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238024405,"owners_count":19403836,"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":["curtain","rimuru-dev","rimurudev","unity","unity-asset","unity-curtain","unity-packages","unity-plugin","unity-utilities","utilities","utility"],"created_at":"2024-09-24T13:22:32.760Z","updated_at":"2025-10-24T18:31:43.230Z","avatar_url":"https://github.com/RimuruDev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | [Русский](README_RU.md)\n\n\u003cp align=\"center\"\u003e\u003ch1\u003e⭐Curtain for Unity⭐\u003c/h1\u003e\u003c/p\u003e\n \u003cp align=\"center\"\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"Made With Unity\" src=\"https://img.shields.io/badge/made%20with-Unity-57b9d3.svg?logo=Unity\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/RimuruDev/Unity-Curtain?logo=github\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"Last Commit\" src=\"https://img.shields.io/github/last-commit/RimuruDev/Unity-Curtain?logo=Mapbox\u0026color=orange\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"Repo Size\" src=\"https://img.shields.io/github/repo-size/RimuruDev/Unity-Curtain?logo=VirtualBox\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"Downloads\" src=\"https://img.shields.io/github/downloads/RimuruDev/Unity-Curtain/total?color=brightgreen\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"Last Release\" src=\"https://img.shields.io/github/v/release/RimuruDev/Unity-Curtain?include_prereleases\u0026logo=Dropbox\u0026color=yellow\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/RimuruDev/Unity-Curtain?branch=main\u0026label=Stars\u0026logo=GitHub\u0026logoColor=ffffff\u0026labelColor=282828\u0026color=informational\u0026style=flat\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"GitHub user stars\" src=\"https://img.shields.io/github/stars/RimuruDev?affiliations=OWNER\u0026branch=main\u0026label=User%20Stars\u0026logo=GitHub\u0026logoColor=ffffff\u0026labelColor=282828\u0026color=informational\u0026style=flat\"\u003e\n  \u003c/a\u003e\n  \u003ca\u003e\n    \u003cimg alt=\"\" src=\"https://img.shields.io/github/watchers/RimuruDev/Unity-Curtain?style=flat\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n![image](https://github.com/RimuruDev/Unity-Curtain/assets/85500556/d72dde3a-34f5-4dd6-be83-a23961b0eeff)\n\n## Overview\n\nThe Curtain system in Unity is a robust and versatile tool designed to manage transitions and loading screens across\nyour games or applications. It serves as a 'curtain', hiding the scene changes or loading processes that happen in the\nbackground, providing a seamless experience for the player.\n\n## Why Use Curtain?\n\nUsing Curtain in your Unity projects can greatly simplify the management of scene transitions and loading sequences. It\nhandles the display of a full-screen overlay, which can be customized and animated, to mask the loading operations that\nmay distract the user or disrupt the gameplay experience.\n\n## Features\n\n- **Animated Transitions**: Curtain can smoothly transition in and out with customizable animations.\n- **Callback Support**: Execute any post-animation logic using callbacks, perfect for loading scenes or resources in the\n  background.\n- **Customizable Appearance**: Easily modify the look and feel of your curtain through Unity's ScriptableObject to match\n  your game's aesthetic.\n- **Delay Control**: Specify delays for hiding the curtain, allowing for flexible timing with your game's loading\n  processes.\n\n\n## Installation \u003c\u003c (Obsolete!)\n\n1. Clone the repository or download the latest release.\n2. Import the Curtain package into your Unity project.\n3. Drag and drop the `CurtainView` prefab onto your canvas in the desired scene.\n\n## Usage\n\nFirst, ensure that your scene contains an instance of `CurtainView`, and that the `CurtainService` is properly\ninitialized and injected where you need to control the curtain.\n\n### Showing the Curtain\n\nInvoke `curtainService.ShowCurtain()` to cover the screen. This is typically done just before you start a loading\noperation.\n\n```csharp\ncurtainService.ShowCurtain(isAnimated: true, callback: () =\u003e\n{\n    // This block of code will execute after the curtain has fully appeared.\n    // You can start loading your scene or resources here.\n});\n```\n\n## Hiding the Curtain\n\nOnce your loading operation is complete, call curtainService.HideCurtain() to remove the curtain and reveal the updated\ncontent.\n\n```csharp\ncurtainService.HideCurtain(isAnimated: true, callback: () =\u003e\n{\n    // This code will execute after the curtain has fully disappeared.\n    // This is the perfect place to transition to a new scene or perform other post-loading operations.\n});\n```\n\n## Delayed Hiding\n\nIf you need to keep the curtain displayed for a set amount of time (for example, to show a loading animation or a\nbranding screen), you can use the delayed hide function.\n\n```csharp\n// Assuming you have a curtainConfig object with a HideDelay property\ncurtainService.HideCurtain(curtainConfig.HideDelay, () =\u003e\n{\n    // Code to execute after the delay and the curtain has been hidden.\n});\n```\n\n## Dependencies:\n\n- NaughtyAttributes: [Asset Store](https://assetstore.unity.com/packages/tools/utilities/naughtyattributes-129996), [GitHub](https://assetstore.unity.com/packages/tools/utilities/naughtyattributes-129996)\n- DoTween: [Asset Store](https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676)\n- Zenject: [Asset Store](https://assetstore.unity.com/packages/tools/utilities/extenject-dependency-injection-ioc-157735), [GitHub](https://github.com/modesttree/Zenject)\n\n## Contributing\n\nYour contributions are welcome! If you have any suggestions for improving this utility, please feel free to fork the\nrepository, make your changes, and submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n### Developed by RimuruDev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frimurudev%2Funity-curtain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frimurudev%2Funity-curtain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frimurudev%2Funity-curtain/lists"}