メインコンテンツまでスキップ

UIBindingManager (ACHENGINE_R3)

UIBindingManagerはR3のSubject<T>を利用した型ベースのpub/subメッセージバスです。 UIコンポーネント間の依存関係なしにイベントをやり取りできます。

R3パッケージ(com.cysharp.r3)がインストールされている場合のみ有効化されます。

発行 (Publish)

using AchEngine.UI;

// メッセージタイプの定義
public struct GoldChangedMessage
{
public int Amount;
}

// 発行
UIBindingManager.Publish(new GoldChangedMessage { Amount = 500 });

購読 (Subscribe)

using AchEngine.UI;

// 購読 — IDisposableを保存しておき、OnDestroyで解除してください
private IDisposable _subscription;

private void OnEnable()
{
_subscription = UIBindingManager.Subscribe<GoldChangedMessage>(msg =>
{
goldLabel.text = msg.Amount.ToString();
});
}

private void OnDisable()
{
_subscription?.Dispose();
}

ユーティリティメソッド

// 特定の型のSubjectが登録されているかを確認
bool exists = UIBindingManager.Contains<GoldChangedMessage>();

// すべてのSubjectを初期化 (シーン遷移時など)
UIBindingManager.ClearAll();

API一覧

メソッド説明
Publish<T>(T)メッセージ発行
Subscribe<T>(Action<T>)メッセージ購読、IDisposableを返す
Contains<T>()該当する型のSubjectの存在有無
ClearAll()すべてのSubjectを削除

R3がない場合、UIBindingManagerはコンパイルから除外されます。インストール状況はWindow › AchEngine › AchEngine Infoで確認してください。