본문 바로가기
Development/Internship

[멋사 로켓단 인턴쉽] 5일차 - UI Manager

by Mobics 2025. 8. 12.

목차


    멋쟁이사자처럼 로켓단 인턴쉽

    25.08.12

    회의록

    >> 안건

    • 업무 업데이트
      • 질문 혹은 피드백 요청
    • 주요 안건
      • 프로토타입 구현
    • 향후 마일스톤
      • 프로토 타입 완성
      • 1회차 플레이 완성 개발 시작

    >> 회의 내용

    • 프로토타입 1차 머지
    • 구현한 각 기반 기능을 상호 호환되도록 적용
    • 수요일에는 프로토타입이 완성.
    • 이후 1회차 완전플레이를 목표로 마일스톤 설정 및 개발 진행
    • 원격저장소 이동 GitLab → Github

     

    UI Manager 제작

    : 어제 만들다가 만 UI Manager를 제작했다.

    • Panel과 Popup는 각 Controller에서 제어 --> Controller에 핵심 로직 구현
    • UI Manager는 각 Controller의 함수를 그대로 호출하는 Facade 역할

     

    >> 작성한 코드

    1. UIManager.cs

    <hide/>
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class UIManager : Singleton<UIManager>
    {
        [SerializeField] private PanelController panelController;
        [SerializeField] private PopupController popupController;
    
        protected override void Initialize()
        {
            base.Initialize();
            
            // 초기화 로직 필요 시, 추가
        }
    
        // Panel 관련
        public void OpenPanel(GameObject panel) => panelController.OpenPanel(panel);
        
        // Popup 관련
        public void ShowPopup(GameObject popup) => popupController.ShowPopup(popup);
        public void ClosePopup(GameObject popup) => popupController.ClosePopup(popup);
    }

     

    2. PanelController.cs

    <hide/>
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class PanelController : MonoBehaviour
    {
        [Header("패널 관리")]
        [SerializeField] private List<GameObject> panels;
    
        // 지정한 패널만 열고 나머지는 닫음
        public void OpenPanel(GameObject panel)
        {
            foreach (var p in panels)
                p.SetActive(p == panel);
        }
    }

     

    3. PopupController.cs

    <hide/>
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class PopupController : MonoBehaviour
    {
        [Header("팝업 관리")]
        [SerializeField] private List<GameObject> popups;
    
        // 팝업 열기
        public void ShowPopup(GameObject popup)
        {
            if (popup != null)
                popup.SetActive(true);
        }
    
        // 팝업 닫기
        public void ClosePopup(GameObject popup)
        {
            if (popup != null)
                popup.SetActive(false);
        }
    }

     

    ※ 그 외 시간

    : 다들 main에 Merge하고 추가 작업을 진행했는데, 나는 따로 받은 일감이 없어서 어울릴 폰트를 좀 찾아보았다.

     

    1. PF 스타더스트 3.0S

     

    눈누

    PF스타더스트 3.0 S - 피나타

    noonnu.cc

     

    2. 갈무리9

     

    눈누

    갈무리9 - Lee Minseo

    noonnu.cc

     

    3. 머니그라피 - 픽셀

     

    눈누

    머니그라피-픽셀 - (주)비바리퍼블리카

    noonnu.cc

     

    4. 던파 비트비트체 v2

     

    액션쾌감!!! 던전앤파이터!

    폰트 던파 비트비트체 v2 소개 도트/픽셀 아트에 적용하기 딱 좋은 비트비트체 v2! 비트비트체 v2는 기존 비트비트체를 업그레이드하여 통일성과 가독성을 향상시켰습니다. 더욱 다양한 표현을

    df.nexon.com