in 소프트웨어 개발

유니티 UI에도 디자인 패턴을 꼭 적용하자

유니티의 UGUI도 인스펙터에 노가다로 드래그앤드롭 할당할게 아니라, 패턴을 적용해서 창 단위로 묶을수 있게 랩핑을 반드시 해야 합니다..
 
1. 공통된 기능을 묶고, 창 호출과 창 숨김 메소드와 거기에 연동되어 일어날 이벤트가 있는 베이스 스크린이라는 추상 클래스를 만듭니다.
 
2. 일시 정지 스크린, 게임 클리어 스크린 등의 창단위 UI요소 홀더용 클래스에 상속시킵니다. 창을 끄고 켤때 직접 SetActive 하지 말고 베이스 스크린에서 상속받은 메소드를 통해서만 끄고 켜게 합니다. 그렇게 해야 스크린이 호출될때와 꺼질때의 베이스 스크린에서 정의한 이벤트가 자동적으로 호출될테니 창의 호출과 숨김이후 동작을 간편하게 자동화할 수 있죠.
 
3. 마찬가지로 UI요소를 UI홀더 바깥의 게임 오브젝트들이 난잡하게 인터렉트 하나하나를 직접 제어하지 말고 UI요소와 상호작용시 일어날 메소드는 해당 UI요소의 부모로 존재하는 오브젝트의 UI홀더용 객체에서 호출되어야 합니다.
 
암튼 게임 코어와 상관없는 UI라고 해도, 방향을 공유하는 UI 속성들끼리 묶은 스크린 단위로 객체를 나누어주고, 패턴을 잘 적용해야 합니다.. 마구잡이로 UI 단순 홀더나 하드코딩 UI객체를 만들어서 드래그앤드롭으로 이리저리 인스펙터에 할당하면 나중에 관리하기 매우 매우매우 힘듬.
 
암튼 오늘 게임 만들다가 패턴화 없이 UI요소들이 코어 기능들과 스파게티처럼 엮여 있길레, 친구 커밋을 다 날리고 절라 머라하고 다 뜯어고침 ㅇㅅㅇ