09
20

 

 

Model

 - 데이터 + 로직

 - C# 객체 / ScriptableObject

 - 보통은 Presenter가 private로 내부적으로 생성함

 

View

 - 디스플레이 + 표시형식 로직

 - Monobehaviour

 - 값을 넘겨주면 표시형식을 만드는 정도의 로직은 가지고 있음.

 

Presenter

 - 중계자 역할

 - Monobehaviour

 - Model의 직접 레퍼런스와 View의 인터페이스 레퍼런스를 가짐.

   (내가 구현할때는 굳이 인터페이스까지 쓰진 않을 예정)  

 - Model과 View를 이벤트로 연결해줌.

 - 다른 Presenter나 Model의 레퍼런스를 가지기도 함

 

 

View는 통채로 선언해주는 경우도 있지만, Text, Transform 등을 각각의 개별적인 View로 보는 경우도 있다.

간단한 스크립트에서는 직접 레퍼런스를 잡아서 

Model + Presenter 만 존재하게 하고, View쪽의 역할이 커진다 싶을때 View로 나눠주는 방법도 있을 듯.

 

Unity의 MVP가 웹이랑 다른 점

Web에서는 View와 Presenter를 확실하게 나눌 수 있지만

Unity의 화면은 전부 View로 간주할 수 있기 때문에 Presenter와 완전히 나누기 애매하며(Transform등의 컴포넌트가 존재하기 때문에 재 참조하게 되버린다), 억지로 Presenter와 View를 분리한 경우에는 Presenter는 값의 매개체일 뿐 Presenter가 존재하는 의미는 거의 없어진다.

 

자동 MVP 스크립트생성
https://github.com/MasaKoha/MVPScriptGenerator4Unity

 

 

COMMENT