关于 unity-singleton-pattern
面向 Unity 开发者的一组 Singleton 变体,用于管理游戏、UI 和输入等全局系统。除标准的重复实例处理外,还提供跨场景持久化和保留最新实例的变体。
主要功能
- 01标准重复实例处理
- 02跨场景持久化
- 03保留最新实例
- 04静态全局访问
适用场景
- 01管理全局 UI 管理器
- 02让库存状态跨场景保留
- 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.txtSingletonExample.cs.txtSingletonRegulator.cs.txt详细介绍
Unity 单例模式
一套稳健的单例变体,用于全局系统。遵循 Ohm-Yura 项目规则:“单例仅用于全局系统(GameManager、UIManager、InputManager)。”
核心功能
- Singleton:标准管理方式。销毁新创建的重复实例,保留原实例。
- PersistentSingleton:在 Singleton 的基础上添加 DontDestroyOnLoad(DDOL),以便跨场景保留状态。
- RegulatorSingleton:高级反向逻辑。销毁旧实例并保留最新实例(适用于热切换)。
- 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