본문 바로가기

[Unity] 이벤트 기반 프로그래밍

Kwonriver 2022. 1. 15.
728x90

프로젝트의 기반이 되는 시스템을 설계해보았다

기존에는 단순히 Update내에서 특정 변수를 지속적으로 검사하는 등의 행위를 통해 이벤트를 검출하였다

이렇다보니 Update 함수의 내부가 복잡해지고 매 프레임마다 특정 변수들을 검사해야 했다.
또한 새로운 상태나 기능이 추가될 때 기존의 코드와 꼬이며 스파게티 코드가 되는 경우가 비일비재했다.
 
이벤트 기반의 설계를 하니 이러한 문제점들이 사라지게 되었다.
아직 처음 이벤트 기반 프로그래밍을 하였기 때문에 기존 설계의 습관들이 남아있으나 유지보수 측면에서 매우 훌륭하였다.
 
먼저 이벤트들을 관리하는 클래스와 이벤트들을선언한다
 
 
 
이 이벤트 매니저는 이벤트들을 관리하며 특정 이벤트가 발생하였을 때 해당 이벤트를 가지고 있는 객체들에게 이벤트가 발생하였음을 알려준다.
딕셔너리를 이용하여 상수시간 내에 이벤트를 관리하며 하나의 이벤트를 호출받겠다고 선언한 오브젝트들을 가지고 있게 된다.
 
이 이벤트 매니저의 이벤트 통보를 처리하기 위해서는 반드시 같은 함수들이 필요하다.
따라서 인터페이스를 이용하여 이벤트를 받을 객체들이 반드시 이벤트 받는 함수를 제작하도록 만든다
 
 
 
이벤트를 받을 객체들은 항상 이러한 인터페이스를 상속받아 OnEvent 함수를 구현한다
 
이번에 만든 좀비 객체가 처리하는 이벤트들
 
 
이런식으로 추가적인 구현도 이벤트로 만들어 다른 코드와 겹침없이 빠른 속도로 구현이 가능하다
728x90