{"id":15160285,"url":"https://github.com/lankaraniamir/nestable-and-prefabable-data-storage","last_synced_at":"2026-02-23T12:07:18.809Z","repository":{"id":254809537,"uuid":"847568673","full_name":"lankaraniamir/Nestable-And-Prefabable-Data-Storage","owner":"lankaraniamir","description":"Unity script framework for creating sets of objects with complexly nested data mappable to the creation and alteration of various prefabs ","archived":false,"fork":false,"pushed_at":"2024-08-26T06:21:33.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-26T22:43:27.072Z","etag":null,"topics":["scriptableobjects","unity","unity-data","unity-prefabs","unity-scriptableobject"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lankaraniamir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-08-26T05:49:55.000Z","updated_at":"2024-08-26T06:31:26.000Z","dependencies_parsed_at":"2024-08-26T09:51:51.267Z","dependency_job_id":null,"html_url":"https://github.com/lankaraniamir/Nestable-And-Prefabable-Data-Storage","commit_stats":null,"previous_names":["lankaraniamir/nestable-and-prefabable-data-storage"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lankaraniamir%2FNestable-And-Prefabable-Data-Storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lankaraniamir%2FNestable-And-Prefabable-Data-Storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lankaraniamir%2FNestable-And-Prefabable-Data-Storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lankaraniamir%2FNestable-And-Prefabable-Data-Storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lankaraniamir","download_url":"https://codeload.github.com/lankaraniamir/Nestable-And-Prefabable-Data-Storage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219874881,"owners_count":16554624,"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":["scriptableobjects","unity","unity-data","unity-prefabs","unity-scriptableobject"],"created_at":"2024-09-26T22:43:35.827Z","updated_at":"2025-10-25T13:02:02.858Z","avatar_url":"https://github.com/lankaraniamir.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Components\n\nThis framework consists of three main item types. A data holder which acts as a single location to \nedit all nested data, an external access point for data in-game, and a manager of naming and file\nstructure for all nested assets. Held within data holders are any number of data nests which are \nnormal scriptable objects but can be nested as a child of any other data nest as much as desired. \nLastly, each data nest is associated with a prefab editor, which can create changes to any component \nwithin a prefab associated with the data nest whenever the value of a data item is changed.\n\n## Usage\n\nThis framework is particularly useful for rapid creation of complex and largely-variadic objects \nof a single type through a data-oriented approach. Data values within one data nest can be used \nto turn on and off other data nests allowing complex and unique data configurations to exist\nby specification; similarly, prefabs can be altered to create components or change their field\nvalues based upon such data changds automatically. Thus, instead of having to create singular\nscriptable objects containing data for every edge case, only the necessary data for any object\nneeds to be stored at any time. Furthermore, instead of having to create complex and computationally\nheavy scripts to create objects based upon data during runtime, all this setup can be done prior\nto start and easily loaded through a single line of code.\n\n## Example\n\nI have provided a small example of such usage based upon the game I created this system for. \nIn this example, there is data for various companions all accessible through MyDataHolder\nwhich is accessible in game through the DataLoader static functions. When the shape data\nfor a companion is changed, the prefab for the companion also has its shape changed. If the \ncompanion has a projectile-based attack, a prefab is generated for the projectile as well,\nwhich holds the projectile script that uses the same projectile data. With this design,\nmany companions can be easily created by simply filling in the data \n\n## Note\n\nThe wonderful attribute system [Naughty Attributes](https://github.com/dbrizov/NaughtyAttributes) \nmust be downloaded for this to work. With it installed, all data can be edited directly in the\ndata holder scriptable objects and nests need not be directly accessed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flankaraniamir%2Fnestable-and-prefabable-data-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flankaraniamir%2Fnestable-and-prefabable-data-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flankaraniamir%2Fnestable-and-prefabable-data-storage/lists"}