グローバルイベント
Warudoには、グローバルイベントを購読およびブロードキャストできるEventBusクラスがあります。カスタムイベントクラスを定義するには、Warudo.Core.Events.Eventクラスを継承します。例:
public class MyEvent : Event {
public string Message { get; }
public MyEvent(string message) {
Message = message;
}
}
イベントを購読(リッスン)するには:
Context.EventBus.Subscribe<MyEvent>(e => {
Debug.Log(e.Message);
});
イベントをブロードキャスト(発火)するには:
Context.EventBus.Broadcast(new MyEvent("Hello, world!"));
イベントをリッスンする必要がなくなったら、購読を解除してください。
var subscriptionId = Context.EventBus.Subscribe<MyEvent>(e => {
Debug.Log(e.Message);
});
// Later
Context.EventBus.Unsubscribe<MyEvent>(subscriptionId);
エンティティ内でのイベントの購読
エンティティ型の内部でコードを記述している場合、イベントの購読IDを扱わずに済むよう、Subscribeメソッドを直接使用できます。
// Inside an entity type, i.e., asset, node, plugin, structured data
Subscribe<MyEvent>(e => {
Debug.Log(e.Message);
});
エンティティが破棄されると、イベントの購読は自動的に解除されます。