{"id":15292772,"url":"https://github.com/fuqunaga/prefsgui","last_synced_at":"2025-04-07T05:11:03.310Z","repository":{"id":47590191,"uuid":"68357598","full_name":"fuqunaga/PrefsGUI","owner":"fuqunaga","description":"Accessors and GUIs for persistent preference values using a JSON file","archived":false,"fork":false,"pushed_at":"2024-09-25T09:23:23.000Z","size":61373,"stargazers_count":127,"open_issues_count":3,"forks_count":13,"subscribers_count":14,"default_branch":"main","last_synced_at":"2024-10-30T00:31:31.761Z","etag":null,"topics":["editorwindow","imgui","prefs","unity","unity-playerprefs","unity3d"],"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/fuqunaga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"fuqunaga"}},"created_at":"2016-09-16T06:25:14.000Z","updated_at":"2024-09-25T09:00:48.000Z","dependencies_parsed_at":"2024-01-15T12:32:59.640Z","dependency_job_id":"476c3fc1-ccd3-4a59-a57f-aca837209472","html_url":"https://github.com/fuqunaga/PrefsGUI","commit_stats":{"total_commits":400,"total_committers":5,"mean_commits":80.0,"dds":0.1775,"last_synced_commit":"27701430eb100f88e5afd10628b3eb581e12cb76"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuqunaga%2FPrefsGUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuqunaga%2FPrefsGUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuqunaga%2FPrefsGUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuqunaga%2FPrefsGUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuqunaga","download_url":"https://codeload.github.com/fuqunaga/PrefsGUI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595335,"owners_count":20963943,"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":["editorwindow","imgui","prefs","unity","unity-playerprefs","unity3d"],"created_at":"2024-09-30T16:26:44.404Z","updated_at":"2025-04-07T05:11:03.287Z","avatar_url":"https://github.com/fuqunaga.png","language":"C#","funding_links":["https://github.com/sponsors/fuqunaga"],"categories":[],"sub_categories":[],"readme":"# PrefsGUI\n\n[![npm version](https://badge.fury.io/js/ga.fuquna.prefsgui.svg)](https://badge.fury.io/js/ga.fuquna.prefsgui)\n[![openupm](https://img.shields.io/npm/v/ga.fuquna.prefsgui?label=openupm\u0026registry_uri=https://package.openupm.com)](https://openupm.com/packages/ga.fuquna.prefsgui/)\n\nAccessors and GUIs for persistent preference values using a JSON file\n\n![](Documentation~/PrefsGUI.gif)\n\n```csharp\n// define PrefsParams with key.\npublic PrefsBool              prefsBool    = new(\"PrefsBool\");\npublic PrefsInt               prefsInt     = new(\"PrefsInt\");\npublic PrefsFloat             prefsFloat   = new(\"PrefsFloat\");\npublic PrefsString            prefsString  = new(\"PrefsString\");\npublic PrefsParam\u003cEnumSample\u003e prefsEnum    = new(\"PrefsEnum\");\npublic PrefsColor             prefsColor   = new(\"PrefsColor\");\npublic PrefsVector2           prefsVector2 = new(\"PrefsVector2\");\npublic PrefsVector3           prefsVector3 = new(\"PrefsVector3\");\npublic PrefsVector4           prefsVector4 = new(\"PrefsVector4\");\npublic PrefsAny\u003cCustomClass\u003e  prefsClass   = new(\"PrefsClass\");\npublic PrefsList\u003cCustomClass\u003e prefsList    = new(\"PrefsList\");\n\n\npublic Element CreateElement(LabelElement label)\n{\n    return UI.Column(\n        prefsBool.CreateElement(),\n        prefsInt.CreateElement(),\n        prefsFloat.CreateElement(),\n        prefsFloat.CreateSlider(),\n        prefsString.CreateElement(),\n        prefsEnum.CreateElement(),\n        prefsColor.CreateElement(),\n        prefsVector2.CreateElement(),\n        prefsVector2.CreateSlider(),\n        prefsVector3.CreateElement(),\n        prefsVector3.CreateSlider(),\n        prefsVector4.CreateElement(),\n        prefsVector4.CreateSlider(),\n        prefsClass.CreateElement(),\n        prefsList.CreateElement()\n    );\n}\n```\n\n# Installation\n\nThis package uses the [scoped registry] feature to resolve package dependencies. \n\n[scoped registry]: https://docs.unity3d.com/Manual/upm-scoped.html\n\n\n**Edit \u003e ProjectSettings... \u003e Package Manager \u003e Scoped Registries**\n\nEnter the following and click the Save button.\n\n```\n\"name\": \"fuqunaga\",\n\"url\": \"https://registry.npmjs.com\",\n\"scopes\": [ \"ga.fuquna\" ]\n```\n![](Documentation~/2022-04-12-17-29-38.png)\n\n\n**Window \u003e Package Manager**\n\nSelect `MyRegistries` in `Packages:`\n\n![](Documentation~/2022-04-12-17-40-26.png)\n\nInstall `PrefsGUI - RosettaUI` and `RosettaUI - UIToolkit`  \nIf you prefer IMGUI, select the `PrefsGUI - RapidGUI` instead.\n\n![](Documentation~/2022-04-21-17-00-54.png)\n\nIf you do not see it, make sure that your Unity version is 2021.3 or higher.\n\n\n# JSON file path\n```\nApplication.persistentDataPath + \"/Prefs.json\"\n```\n\nYou can customize it by placing `PrefsKvsPathCustom` in the scene and setting the `Path` field.  \nSpecial folder names and environment variables are also available.\n\n```\n- %dataPath% -\u003e Application.dataPath\n- %companyName% -\u003e Application.companyName\n- %productName% -\u003e Application.productName\n- other %[word]% -\u003e System.Environment.GetEnvironmentVariable([word])\n```\n\n![](Documentation~/2022-07-05-15-47-42.png)\n\n\n# PrefsSearch\n\nDisplay loaded PrefsParams with a partial key match.\n\n![](Documentation~/PrefsSearch.gif)\n\n\n# EditorWindow\n\n**Window -\u003e PrefsGUI**\n\n![](Documentation~/editorwindow.gif)\n\n- Display all loaded PrefsParams that can be modified.\n- Feed back the current value as a default value.\n- Edit the key prefix for each GameObject.\n\n\n# PrefsMaterialProperty\n\nAuto-create material menu.\n\n![](Documentation~/prefsmaterialproperty.gif)\n\n\n# Sync PrefsParams over a network\n\nsee [PrefsGUISyncForMirror](https://github.com/fuqunaga/PrefsGUISyncForMirror)\n\n# URP PostProcessing\n\nsee [PrefsGUI-PostProcessingURP](https://github.com/fuqunaga/PrefsGUI-PostProcessingURP)\n\n# References\n- [UV Checker Map Maker](http://uvchecker.byvalle.com/)(CustomUVChecker_byValle_1K.png)\n- [RosettaUI](https://github.com/fuqunaga/RosettaUI)\n- [RapidGUI](https://github.com/fuqunaga/RapidGUI)\n- [PrefsGUISyncForMirror](https://github.com/fuqunaga/PrefsGUISyncForMirror)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuqunaga%2Fprefsgui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuqunaga%2Fprefsgui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuqunaga%2Fprefsgui/lists"}