{"id":15688297,"url":"https://github.com/excalith/unity-observer","last_synced_at":"2025-08-01T20:44:37.213Z","repository":{"id":97288564,"uuid":"297345774","full_name":"excalith/unity-observer","owner":"excalith","description":"A Unity 3D editor window to invoke methods, observe values and change them on editor play mode.","archived":false,"fork":false,"pushed_at":"2020-09-22T10:46:48.000Z","size":103,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-07T21:02:09.809Z","etag":null,"topics":["debug","editor","editor-tool","log","observer","tool","unity","unity-3d"],"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/excalith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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":{"ko_fi":"excalith"}},"created_at":"2020-09-21T13:20:17.000Z","updated_at":"2024-12-23T10:46:41.000Z","dependencies_parsed_at":"2023-06-07T20:45:23.642Z","dependency_job_id":null,"html_url":"https://github.com/excalith/unity-observer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/excalith/unity-observer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/excalith%2Funity-observer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/excalith%2Funity-observer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/excalith%2Funity-observer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/excalith%2Funity-observer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/excalith","download_url":"https://codeload.github.com/excalith/unity-observer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/excalith%2Funity-observer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268294500,"owners_count":24227688,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["debug","editor","editor-tool","log","observer","tool","unity","unity-3d"],"created_at":"2024-10-03T17:57:29.674Z","updated_at":"2025-08-01T20:44:37.135Z","avatar_url":"https://github.com/excalith.png","language":"C#","funding_links":["https://ko-fi.com/excalith"],"categories":[],"sub_categories":[],"readme":"# Unity Observer\n### Observer Editor Window\n\nAn editor window to invoke methods, observe values and change them on editor play mode.\n\n![](screenshot.png)\n\n### Notes\n- Should work with Unity 2018.3 or later\n- Works with both Dark and Light themes\n\n## Installation\nThere are 2 ways to install the package\n1. You can install via git url by adding this entry in your manifest.json\n`https://github.com/excalith/unity-observer.git#upm`\n2. You can clone or download this repository and add the `Assets/Observer` folder into your projects `Assets` folder.\n\n## Usage\n- You can open Observer window through `Window \u003e Tools \u003e Observer`\n- Requires `Excalith.Observer` namespace\n\n| Function           | Argument 1        | Argument 2           | Argument 3      |\n| ------------------ | ----------------- | -------------------- | --------------- |\n| Observer.Log       | `string` Category | `string` DisplayName | `object` Object |\n| Observer.Value     | `string` Category | `string` DisplayName | `object` Object |\n| Observer.Button    | `string` Category | `string` DisplayName | `object` Object |\n| Observer.Header    | `string` Category | `string` DisplayName | `string` Title  |\n| Observer.Seperator | `string` Category |                      |                 |\n---\n\n### Log Method\nRegisters a value to watch over. To update values, call corresponding function again.\n    \n```C\nObserver.Log(\"Log Examples\", \"String Value\", \"Test String\");\nObserver.Log(\"Log Examples\", \"Boolean Value\", true);\nObserver.Log(\"Log Examples\", \"Int Value\", 150);\nObserver.Log(\"Log Examples\", \"Float Value\", 1.50f);\nObserver.Log(\"Log Examples\", \"Double Value\", 1.50);\nObserver.Log(\"Log Examples\", \"Vector2 Value\", new Vector2(2,2));\nObserver.Log(\"Log Examples\", \"Vector3 Value\", new Vector3(2, 2, 2));\nObserver.Log(\"Log Examples\", \"Color Value\", new Color(128, 128, 128));\nObserver.Log(\"Log Examples\", \"Enum Value\", MyEnum.MyValue);\n```\n\n---\n\n### Value Method\n\u003e FYI: This should be only used within editor for testing purposes\nRegisters a value and allows you to update it through editor. Unsupported objects will be shown as \"Unsupported Type\". \n\n```C\n// Boolean Example\nObserver.Value(\"Update Examples\", \"Boolean Type\", m_BoolTest, (object val) =\u003e\n{\n    m_BoolTest = (bool)val;\n});\n\n// String Example\nObserver.Value(\"Update Examples\", \"String Type\", m_StringTest, (object val) =\u003e\n{\n    m_StringTest = (string)val;\n});\n\n// Integer Example\nObserver.Value(\"Update Examples\", \"Integer Type\", m_IntTest, (object val) =\u003e\n{\n    m_IntTest = (int)val;\n});\n\n// Float Example\nObserver.Value(\"Update Examples\", \"Float Type\", m_FloatTest, (object val) =\u003e\n{\n    m_FloatTest = (float)val;\n});\n\n// Double Example\nObserver.Value(\"Update Examples\", \"Double Type\", m_DoubleTest, (object val) =\u003e\n{\n    m_DoubleTest = (double)val;\n});\n\n// Vector2 Example\nObserver.Value(\"Update Examples\", \"Vector2 Type\", m_Vec2Test, (object val) =\u003e\n{\n    m_Vec2Test = (Vector2)val;\n});\n\n// Vector3 Example\nObserver.Value(\"Update Examples\", \"Vector3 Type\", m_Vec3Test, (object val) =\u003e\n{\n    m_Vec3Test = (Vector3)val;\n});\n\n// Color Example\nObserver.Value(\"Update Examples\", \"Color Type\", m_ColorTest, (object val) =\u003e\n{\n    m_ColorTest = (Color)val;\n});\n\n// Enum Example\nObserver.Value(\"Update Examples\", \"Enum Type\", m_EnumTest, (object val) =\u003e\n{\n    m_EnumTest = (ObserverEntryType)val;\n});\n```\n\n---\n\n#### Button Method\nRegisters a button and invokes given function\n```C\nObserver.Button(\"Button Examples\", \"Function Call Button\", TestFunction);\n```\n\n```C\nObserver.Button(\"Button Examples\", \"Anonymous Call Button\", () =\u003e\n{\n    Debug.Log(\"Hello, World!\");\n});\n```\n\n---\n\n#### Header Method\nCreates a space with a title\n```C\nObserver.Header(\"Update Examples\", \"Header Example\");\n```\n\n---\n\n#### Seperator Method\nCreates an empty space\n```C\nObserver.Seperator(\"Update Examples\");\n```\n\n## Contribution\nPlease feel free to contribute!\n\n- Create issues for both issues and feature requests\n- Create pull requests to develop for anything listed in issues\n    - Please use prefixes such as Add, Fix, Update etc. before your commit message\n    - Please be brief about your commit message\n\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexcalith%2Funity-observer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexcalith%2Funity-observer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexcalith%2Funity-observer/lists"}