이벤트 버스 패턴의 이해

Unity의 이벤트 버스 패턴은 객체가 구독하거나 게시할 수 있는 특정한 전역 이벤트의 목록을 관리하는 패턴이다. 옵저버 패턴과 유사하며 전역적으로 사용함으로써 접근이 더 편리하다.

Unity에서 이벤트 버스를 구성하는 스크립트는 총 3가지로 나뉘게 된다.

  1. Subscriber : 특정한 전역 이벤트를 이벤트 버스에 등록하는 역할이다.
  2. Event Bus : PublisherSubscriber 사이에서 이벤트를 관리하고 전달하는 역할이다.
  3. Publisher : Event Bus에 등록된 이벤트를 사용하는 역할이다.

이벤트 버스 패턴의 예시

Unity를 이용하여 간단한 테트리스 개발한다고 생각해보자. 테트리스의 일련의 과정은 다음과 같다.

  1. 게임을 시작하면 카운트 다운을 하는 타이머가 줄어들고
  2. 반복적으로 한 행을 블록으로 가득 채워서 없애다가
  3. 하나의 열이라도 천장에 닿게 되는 순간 게임이 끝난다.

그렇다면 우리는 특정한 전역 이벤트를 START, PLAYING, OVER 이 정도로 구분할 수 있을 것이다.

그렇다면 어떤 이벤트가 시작될지 Subscriber로부터 Event Bus에 구독하고 각각의 시작, 진행, 종료에 PublisherEvent Bus로부터 이벤트를 실행하면 된다.