mcpField
U
unity-observer-pattern

unity-observer-pattern

github.com/muharremtozan开发1752 次安装22 周前更新
代码仓库

关于 unity-observer-pattern

Unity Observer Pattern (Reactive Properties) 将普通变量封装为可观察属性,供 Unity 项目使用。它同时支持 C# 监听器和 UnityEvents,并提供 Inspector 配置及可保存到场景、Prefab 的编辑模式连接。

主要功能

  1. 01支持 C# 监听器和 UnityEvents
  2. 02可观察值的隐式转换
  3. 03通过 Inspector 配置事件
  4. 04编辑模式持久化事件连接
  5. 05结构化事件流日志

适用场景

  1. 01值变化时通知 UI 方法
  2. 02在 C# 代码中订阅属性变化
  3. 03将事件连接保存到场景或 Prefab

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/unity-observer-pattern确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

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

详细介绍

Unity 观察者模式(响应式属性)

一种强大的观察者模式实现,可将标准变量转变为“智能属性”。基于“Generic Observer”架构,提供完整的 Inspector 支持和编辑模式工具。

核心功能

  1. 混合路径:既支持标准 C# 监听器(专业路径),也支持 UnityEvents(设计者/轻量路径)。
  2. 隐式转换:语法简洁流畅,可直接使用 int x = myObservableInt;(无需再写 .Value)。
  3. 编辑器持久化:在编辑模式下通过代码绑定持久化调用,并将其保存到场景/预制件中。
  4. 诊断日志:内置结构化日志,用于追踪事件流。

核心文件(最多 3 个)

  • Observable.cs.txt:核心泛型包装器,支持隐式转换和内置编辑器绑定。
  • ObservableEditorTools.cs.txt:用于清除持久化 UnityEvents 的高级反射技巧。
  • ObservableExample.cs.txt:具体示例,演示 UI 绑定和生命周期管理。

用法

选项 A:轻量路径(Inspector)
  1. 定义字段:public Observable<int> health;。
  2. 在 Unity Inspector 中,将 UI 方法拖到 On Value Changed 列表中。
选项 B:专业路径(代码)
health.AddListener( val => Debug.Log( val ) );
health.Value = 50; // Automatically triggers notification
选项 C:隐式用法
int currentHealth = health; // Works automatically via implicit operator

清理

始终在 OnDisable 中调用 RemoveListener 或 Dispose,以防止内存泄漏。

评论

支持 Markdown