오늘도 응-애 그 자체인 모습을 볼 수 있음.


슬슬 뭐가 많아짐에 따라 간단한 디버깅용 UI를 하나 만들었다.


UI는 로직이랑 분리하고 싶어서 옵저버 패턴을 쓰기로 했음.


처음에는 인터페이스로 구현할까 했는데


1. 서브젝트는 딱히 클래스간에 다를 일이 없다.

2. List<Observer> 필드를 가져야 한다.


라는 이유때문에 그냥 추상 클래스로 구현하기로 했음.




2ebcc224eadc78ee3ff698a518d604038f7f1cf892b3beb52d

이게 옵저버 인터페이스랑, 이벤트 열거형



2ebcc224eadc78ee3cf698a518d60403d9a7bf94f9f096122217

그리고 이게 서브젝트임.


List<MonoBehaviour> _observers 를 List<IObserver> observer로 옮기는 저 기괴한 방식은

1. 인스펙터 창에서 옵저버를 등록시키고 싶음

2. 근데 인터페이스는 그게 안되네?

3. 그런데 옵저버를 클래스로 만들자니, 다중상속이 걸리네?(서브젝트가 옵저버 역할도 할 수 있게 하기 위함)

= 그럼 걍 다른 걸로 받고, 거기서 옵저버를 가져오면 되겠네


라는 정신나간 논리로 인해 만들어진 구조임.

이거 처리할 좋은 방법 있으면 조언 바람.


하튼 이런 방식을 통해



2ebcc224eadc78ee3df698a518d6040300ecda6498c6cc11e3

그냥 이렇게 상속만 하면 다른 거 손 볼 필요 없이



18b3c42ff1de3da22ef78efc58c12a3ab51d9b6e7233307ae588fd

여기에 원하는 옵저버를 집어넣기만 하면 된다.



2ebcc224eadc78ee3af698a518d604038d99335542906991c8

그리고 필요한 곳에서 이벤트 타입 넣어서 호출하면



2ebcc224eadc78ee3bf698a518d604032075e40b292ef7cb47

옵저버가 받아서 처리하면 끝



일단 대충 굴러간다.


응애일지 끝


근데 저거 불꽃 이펙트 잘만들지 않았음? 

매우 만족스러움.