{"id":18675922,"url":"https://github.com/foopis23/unity-callback-events","last_synced_at":"2025-04-12T02:30:25.589Z","repository":{"id":40480651,"uuid":"330036611","full_name":"foopis23/Unity-Callback-Events","owner":"foopis23","description":"A Global Event Bus for Unity","archived":true,"fork":false,"pushed_at":"2022-05-05T16:36:59.000Z","size":37,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T07:16:37.262Z","etag":null,"topics":["callback-event","events","events-listeners","unity","unity3d-plugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foopis23.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-15T22:31:24.000Z","updated_at":"2024-11-13T15:21:22.000Z","dependencies_parsed_at":"2022-08-09T21:41:04.156Z","dependency_job_id":null,"html_url":"https://github.com/foopis23/Unity-Callback-Events","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2FUnity-Callback-Events","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2FUnity-Callback-Events/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2FUnity-Callback-Events/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2FUnity-Callback-Events/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foopis23","download_url":"https://codeload.github.com/foopis23/Unity-Callback-Events/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248506901,"owners_count":21115503,"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":["callback-event","events","events-listeners","unity","unity3d-plugin"],"created_at":"2024-11-07T09:26:56.318Z","updated_at":"2025-04-12T02:30:25.318Z","avatar_url":"https://github.com/foopis23.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Callback Event System\nThis system was designed so that the programmer can write less boilerplate code \nfor event systems. This is done by combining event data and event type \ndefinitions into one class. This system is not supposed to replace unity events,\nbut rather fill the role of a global event bus. This is great for games that want\nto implement the systemic design.\n\nThis system was created using \nhttps://github.com/quill18/UnityCallbackAndEventTutorial as starting point.\n\n## Getting Started\n- [API Reference](https://github.com/foopis23/Unity-Callback-Events/wiki/API-Reference)\n## Concepts\n### Event\nIs a trigger that does not receive feedback from the callbacks that are \nlistening to it. Think of it as someone basically shouting into a microphone \nwhat is currently happening to them at any given moment. Imagine you wanted to \nimplement a heat mechanic. You can have a fire that is throwing events saying \n\"It's HOT RIGHT HERE\" and heat-sensitive listeners listening for that.\n\n### Filter\nIs a trigger that does receive feedback from the listeners. This is a way to \noverride specific data coming through a filter pipeline. Say, for example, you\nwant to modify the damage amount for a sword when a certain ability is active. You\ncould achieve this with a filter that emits whenever sword damage is used and a \nfilter listener that increases the damage with the ability to be active.\n\n### EventContext\nThe type of Event or Filter is denoted by the EventContext Type. When registering \nan event listener, a generic is passed which represents not only the first\n parameter of the callback functions but also the type of event the listener is\n listening to. For example, if you have two events, like heat and rain, you\n would make two classes that extend EventContext that contain all of the data\n you would want to pass to the event listeners. No EventContext should use\n EventContext directly. EventContext is just an empty class to be extended.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoopis23%2Funity-callback-events","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoopis23%2Funity-callback-events","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoopis23%2Funity-callback-events/lists"}