[ 델리게이트 ]
[ 이벤트 주도적 프로그래밍 ]
게임 상황(환경)에 따라 적 캐릭터는 다양한 상태를 인지해야 함
게임이 실행 중인지 멈춰 있는지
적 캐릭터가 등장, 또는 사라질 떄가 되었는지
주인공 캐릭터가 경계, 또는 공격 범위에 들어와 있는지
Update() 문에서 체크를 하면 해결되기는 하지만, 소스가 지저분해지고 이해하기가 쉽지 않음
매번 Update()에서 상황을 체크하지 않고, 특정 상황에 이벤트를 받아서 처리할 수 있도록 함
이벤트(메시지)를 통해서 이 상황에 대한 처리를 할 수 있도록 프로그램할 필요가 있음
[ 이벤트 ]
이벤트 드리븐( Event Driven ) 방식에서의 이벤트
[ 이벤트 관리 / 인터페이스를 통해 이벤트 관리]
Listener 인터페이스를 통한 이벤트 관리
iListener(인터페이스)
EventManager : 여러 레벨(Scene)에 유지되고, 전역적으로 접근이 가능한 클래스(Singleton구현)로 Listener와 Poster를 연결하는 역할 수행
EventListener : 이벤트가 발생하면, 이 이벤트를 받고자 하는 모든 오브젝트
EventPoster : 이벤트가 발생하는 시점에 이벤트를 발생시키는 오브젝트
Delegate를 통한 이벤트 관리
EvnetManager로만 관리
인터페이스 클래스로 자료를 관리했으나, Delegate의 특성인 메소드(함수)로 관리를 하면 좀 더 편해짐.