mcpField
U
unity-observer-pattern

unity-observer-pattern

github.com/muharremtozanDevelopment1752 installsUpdated 22w ago
Repository

About unity-observer-pattern

Unity Observer Pattern (Reactive Properties) is a Unity implementation of the Observer pattern that wraps variables as observable properties. It supports both C# listeners and UnityEvents, with Inspector support and Edit-mode wiring that persists to scenes and prefabs.

Key features

  1. 01C# listener and UnityEvents paths
  2. 02Implicit conversion from observable values
  3. 03Inspector-based event setup
  4. 04Persistent Edit-mode event wiring
  5. 05Structured event-flow logging

Use cases

  1. 01Notify UI methods when a value changes
  2. 02Subscribe to property changes from C# code
  3. 03Save event connections into a scene or prefab

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/muharremtozan/unity-agent-skills --skill unity-observer-pattern

After installing, type/unity-observer-patternin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

assets/code/
Observable.cs.txt
ObservableEditorTools.cs.txt
ObservableExample.cs.txt
references/
guide.md

Details

From the project README

Unity Observer Pattern (Reactive Properties)

A powerful implementation of the Observer pattern that turns standard variables into "Smart Properties." Includes full Inspector support and Edit-mode tooling based on the "Generic Observer" architecture.

Core Features

  1. Hybrid Path: Works with standard C# listeners (Pro Path) AND UnityEvents (Designer/Light Path).
  2. Implicit Casting: Seamless syntax allows int x = myObservableInt; (no more .Value boilerplate).
  3. Editor Persistence: Programmatically wire persistent calls in Edit Mode that save to scene/prefab.
  4. Diagnostic Logging: Built-in structured logging for tracking event flows.

Core Files (Max 3)

  • Observable.cs.txt: The core generic wrapper with implicit casting and built-in editor wiring.
  • ObservableEditorTools.cs.txt: Advanced reflection hacks for clearing persistent UnityEvents.
  • ObservableExample.cs.txt: Concrete example demonstrating UI binding and lifecycle management.

Usage

Option A: The Light Path (Inspector)
  1. Define a field: public Observable<int> health;.
  2. In Unity Inspector, drag your UI method into the On Value Changed list.
Option B: The Pro Path (Code)
health.AddListener( val => Debug.Log( val ) );
health.Value = 50; // Automatically triggers notification
Option C: Implicit Usage
int currentHealth = health; // Works automatically via implicit operator

Cleanup

Always call RemoveListener or Dispose in OnDisable to prevent memory leaks.

Comments

Markdown supported