mcpField
U
unity-singleton-pattern

unity-singleton-pattern

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

关于 unity-singleton-pattern

面向 Unity 开发者的一组 Singleton 变体,用于管理游戏、UI 和输入等全局系统。除标准的重复实例处理外,还提供跨场景持久化和保留最新实例的变体。

主要功能

  1. 01标准重复实例处理
  2. 02跨场景持久化
  3. 03保留最新实例
  4. 04静态全局访问

适用场景

  1. 01管理全局 UI 管理器
  2. 02让库存状态跨场景保留
  3. 03替换现有音乐系统

安装

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

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

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

包含的文件

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

assets/code/
SingletonBase.cs.txt
SingletonExample.cs.txt
SingletonRegulator.cs.txt

详细介绍

Unity 单例模式

一套稳健的单例变体,用于全局系统。遵循 Ohm-Yura 项目规则:“单例仅用于全局系统(GameManager、UIManager、InputManager)。”

核心功能

  1. Singleton:标准管理方式。销毁新创建的重复实例,保留原实例。
  2. PersistentSingleton:在 Singleton 的基础上添加 DontDestroyOnLoad(DDOL),以便跨场景保留状态。
  3. RegulatorSingleton:高级反向逻辑。销毁旧实例并保留最新实例(适用于热切换)。
  4. StaticInstance:轻量级全局访问,不强制消除重复实例。

核心文件(最多 3 个)

  • SingletonBase.cs.txt:经典和持久化变体的泛型基类。
  • SingletonRegulator.cs.txt:带时间戳的调节器变体逻辑。
  • SingletonExample.cs.txt:Game 和 UI 管理器的具体示例。

用法

1. 标准管理器
public class UIManager : Singleton<UIManager> { }
// Use via: UIManager.Instance.Show();
2. 持久化管理器
public class InventoryManager : PersistentSingleton<InventoryManager> { }
// Survives scene changes.
3. 调节器(系统切换)
public class MusicSystem : RegulatorSingleton<MusicSystem> { }
// Spawning a new one will automatically kill the old one.

核心原则

始终使用限制最严格的版本。如果无需跨场景持久化,请使用 Singleton<T>。如果只需要引用且不介意存在重复实例,请使用 StaticInstance<T>。

评论

支持 Markdown