본문으로 건너뛰기

글로벌 이벤트

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);
});

이벤트는 엔티티가 삭제될 때 자동으로 구독 해제돼요.

Contributions

Edit on Github

Authors

Translators

Last updated on 2024.09.24