EventBus 알아보기
- 이번 게임 개발 프로젝트에서 사용하는 EventBus 프레임워크의 구조를 살펴보고, 활용하기 위한 방법을 알아보고자 한다.
IEvent
인터페이스
public interface IEvent { }
public struct BattleStartEvent : IEvent
{
}
IEvent
는 구현 요소를 가지고 있지는 않으며, BattleStartEvent
라는 구조체를 통해 구현되고 있다.
BattleStartEvent
구조체
private void OnEnable()
{
...
EventBus<BattleStartEvent>.Register(battleStartBinding);
...
}
private void OnDisable()
{
EventBus<BattleStartEvent>.Deregister(battleStartBinding);
...
}
CardDeck
클래스에서 이벤트 버스에 등록 및 해제가 이루어지고 있음을 볼 수 있었다. BattleStartEvent
구조체에 대한 이벤트 버스에 battleStartBinding
이라는 EventBinding
클래스를 구현한 객체를 HashSet
에 추가하고 있음을 볼 수 있다.