{"id":13661905,"url":"https://github.com/xsduan/unity-hierarchy-folders","last_synced_at":"2025-06-25T20:07:39.059Z","repository":{"id":53966199,"uuid":"111220973","full_name":"xsduan/unity-hierarchy-folders","owner":"xsduan","description":"Specialized folder objects for Unity Hierarchy.","archived":false,"fork":false,"pushed_at":"2024-04-26T15:22:25.000Z","size":119,"stargazers_count":108,"open_issues_count":4,"forks_count":24,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-07T20:50:05.789Z","etag":null,"topics":["folders","hierarchy","unity","unity-package-manager","unity3d","upm"],"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/xsduan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2017-11-18T16:32:11.000Z","updated_at":"2025-03-19T03:31:43.000Z","dependencies_parsed_at":"2024-04-21T09:49:23.567Z","dependency_job_id":"77b0e829-b6cd-49ac-ba44-78311705a85a","html_url":"https://github.com/xsduan/unity-hierarchy-folders","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/xsduan/unity-hierarchy-folders","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsduan%2Funity-hierarchy-folders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsduan%2Funity-hierarchy-folders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsduan%2Funity-hierarchy-folders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsduan%2Funity-hierarchy-folders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xsduan","download_url":"https://codeload.github.com/xsduan/unity-hierarchy-folders/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsduan%2Funity-hierarchy-folders/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261945378,"owners_count":23234238,"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":["folders","hierarchy","unity","unity-package-manager","unity3d","upm"],"created_at":"2024-08-02T05:01:43.911Z","updated_at":"2025-06-25T20:07:38.973Z","avatar_url":"https://github.com/xsduan.png","language":"C#","funding_links":[],"categories":["C\\#","Utility"],"sub_categories":[],"readme":"# Folders for Unity Hierarchy\n\nSpecialized folder objects for Unity Hierarchy.\n\n## Installation\n\nThis uses the new UPM system. The old copy-into-Assets method still works\nperfectly decent so if you don't want to bother with UPM just copy the `Editor`\nand `Runtime` folders into your project.\n\nTo add this project, add a [git dependency][1] in your `manifest.json`:\n\n```json\n{\n  \"dependencies\": {\n    \"com.unity.package-manager-ui\": \"1.9.11\",\n    \"com.xsduan.hierarchy-folders\": \"https://github.com/xsduan/unity-hierarchy-folders.git\"\n  }\n}\n```\n\nOlder versions of Unity may have to use the relative link, ie:\n\n```json\n{\n  \"dependencies\": {\n    \"com.unity.package-manager-ui\": \"1.9.11\",\n    \"com.xsduan.hierarchy-folders\": \"file:../../unity-hierarchy-folders\"\n  }\n}\n```\n\nA \"Create Folder\" menu item should show up in the GameObject menu. Add\n`Tests/Example.unity` to your current scene for an example of what hierarchy\nfolders can do for you.\n\nThe UPM does not have much documentation at the moment so it probably will be\nbuggy, you're not going crazy!\n\n[1]: https://forum.unity.com/threads/git-support-on-package-manager.573673/#post-3819487\n\n### OpenUPM\n\nPlease note that this is a third party service, which means that Unity\nTechnologies will not provide support. Always be mindful when considering\nunofficial plugins and tools.\n\n```\n$ openupm add com.xsduan.hierarchy-folders\n```\n\nTo install OpenUPM, please see the [documentation][2].\n\n[2]: https://openupm.com/docs/\n\n## Stripping Modes\n\nYou can choose how exactly the folder will be removed from the hierarchy in **Preferences -\u003e Hierarchy Folders**.\n\nThe following stripping modes are available:\n\n- **Prepend With Folder Name** - The folder will be removed, and all child objects will be prepended with the folder name (e.g. childObject =\u003e Folder/childObject). This is the default behaviour.\n- **Delete** - The folder will be removed, and names of child objects will not change.\n- **Do Nothing** *(available only for Play Mode)* - The folder will not be removed, the hierarchy will not change in play mode. Use this mode if you don't need extra performance in Editor.\n- **Replace With Separator** *(available only for Play Mode)* - The hierarchy will flatten, and the folder will be replaced with a separator (e.g. \"--- FOLDER ---\"). Useful if you need extra performance in Editor but still want to see what folder game objects belong to.\n\n## Stripping folders from prefabs\n\nWith this plugin, it is possible to strip folders from prefabs that are not present in the scene but are instantiated at runtime. Upon entering Play Mode, the plugin goes through all prefabs containing folders and strips them. On exiting Play Mode, the changes are reverted. It shouldn't add significant overhead unless you have thousands of prefabs with folders inside, but if entering Play Mode takes too long, you can try disabling this option in **Preferences -\u003e Hierarchy Folders**. You can also choose whether to strip folders from prefabs before they are packed into a build.\n\n## Possible FAQs\n\n### Why folders in the first place?\n\nAs projects get bigger, they tend to get cluttered in the scene. It's very\nhelpful if you can group them together into logical groups.\n\n#### Why delete them on build then?\n\nBecause they are best used for level designers to declutter the hierarchy, but\ncalculating the global transform from the local during runtime can take a\nnoticeable impact on performance once scenes get to 1000, 10000, or more\nobjects.\n\n#### So why can't I just use empty GameObjects and delete them on build?\n\nSometimes empty GameObjects are used for other things and it's useful to have a\nspecific type of object that should always be deleted on build.\n\nBesides, I did all the legwork, so you wouldn't have to!\n\n### There's another product/widget that exists that does this exact task.\n\nSo there are. This isn't exactly a unique concept and I only made it for future\npersonal use and shared it only to possibly to help other people because I\ncouldn't find it on Google.\n\nIf you are the owner of one such product, please contact me and we can work\nsomething out.\n\nThe hope is to have it be a native component like it is in Unreal. (Not\nnecessarily this one specifically, but I'm not opposed to it ;) I've seen paid\ncomponents for this and frankly for the effort it took me it's a bit of a\nrip-off to pay any amount for it. [Vote for this feature on the Unity\nProductboard if you agree!](https://portal.productboard.com/ca1chnbwvzw1eg5yjc5rijnj/c/392-hierarchy-folders)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxsduan%2Funity-hierarchy-folders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxsduan%2Funity-hierarchy-folders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxsduan%2Funity-hierarchy-folders/lists"}