unity-singleton-pattern について
ゲーム、UI、入力などのグローバルシステムを管理するUnity向けSingletonのバリエーション集です。標準的な重複防止に加え、シーンをまたぐ永続化や最新インスタンスを残す方式を備えています。
主な機能
- 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 を拡張し、Don't Destroy On Load(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 対応