아기다리고 고기다리던 유니티 시스템 스터디다!
이번주는 추석이 껴있어서 그런지 포스팅이 조금 늦었다. ㅎㅎ
추석이어서 그런지 용돈도 많이 받았다!! 20대 중반인데 용돈 받는 것이 조금 부끄럽기도 하면서, 빨리 취업해서 용돈 드려야지 하는 마음이 커졌다.
3주 차에는 게임 플레이에 많은 부분을 차지하는 UI 시스템에 대해 배워보았다.
사실 그동안 프로젝트를 진행하며 UI 관련된 부분에서 궁금한 점이 많아 정말 기대가 되었었다.
1. UI 시스템 프레임워크
수업에서 소개된 프레임워크에는 3가지 구성요소가 있었다.
1) BaseUIData
- 기본 데이터를 정의
- 각 UI를 표시하는데 필요한 데이터는 이 BaseUIData를 상속한 클래스에 저장
2) BaseUI
- 모든 UI 화면의 기본 클래스로 사용
- UI의 초기화, 정보 설정, 열기 닫기 등의 기능을 제공
- UI 요소의 기본 기능과 UI 인트턴스 객체에 접근
- 모든 UI 화면 클래스는 이 BaseUI 클래스를 상속하여 구현
3) UIManager
- UI 화면을 관리하는 메인 시스템
- UI의 열기 및 닫기 처리
- UI 풀 관리
- 해당 시스템에서는 UI를 한번 쓰고 버리는 것이 아닌 풀에서 사용하는 방식임
- Singleton 패턴을 사용하여 게임 내에서 전역적으로 액세스 가능
요즘 코딩에 대한 조언을 듣다보면 대부분 데이터와 실행을 나누는 경우가 많았다.
위의 구조를 들으면서는 왜 데이터와 실행 부분을 나누는지 이해가 되지 않았다.
하지만, 실제 코드를 작성하고 실행해보니 왜 데이터를 나누는지 알 수 있었다.
외부에서 해당 UI가 어떻게 실행되는지 알 필요 없이, 데이터만 맞춰 기입하면 그대로 실행이 되기 때문이다.
현업에서 나는 이와 비슷한 팝업 시스템을 접할 수 있었다.
다만 다른 점이라고 하면, 현업에서는 데이터와 실행을 한 클래스에서 처리를 하였다.
때문에 위 구조의 장점에 대해 단박에 알 수 있었다.
현업에서의 구조에서는 매개변수 순서를 헷갈릴 수 있다는 점,
(데이터를 분리하면, 본인이 원하는 순서대로 데이터를 기입할 수 있다.)
매개변수가 길어지다보니, 이름을 간추려 쓸 수밖에 없고, 어떤 매개변수가 어떤 역할인지 모호해진다는 점
(데이터를 분리하면, 각 매개변수 이름을 더 정확히 작성할 수 있어, 역할이 더 명확해진다.)
등이 있었다.
이렇게 새로운 구조를 공부하니 뭔가 머리가 탁 트이는 느낌이었다.
최근에 나는 개인 프로젝트의 Move Jump 등에 필요한 스테이터스를 따로 관리하게 되었는데,
위에서 어떻게 활용하는지 확인해보니, 나중에 입력에 대한 부분을 다른 AI 스크립트와 연결하여 사용할 수 있을 것 같았다. (머리가 반짝반짝한 느낌!)
이번주는 약간 짧은 감이 있다...
수업을 짧게 가져가서 그런 것 같기는하다.. 하하..
다음 주는 더 힘내서 해보도록 하겠다!!
'유니티 시스템 프로그래밍' 카테고리의 다른 글
유니티 시스템 스터디-5주차: 유저 인벤토리 (0) | 2024.11.26 |
---|---|
유니티 시스템 스터디-4주차: Lobby 씬 구조 및 디자인 패턴...그리고 유저 재화까 (2) | 2024.09.26 |
유니티 시스템 스터디-2주차: 유저 데이터, 데이터 테이블, 오디오 (0) | 2024.09.09 |
유니티 시스템 스터디-1주차: 프로젝트 세팅하기, 주요 씬 설계, Title 시스템 제작 (6) | 2024.09.05 |