게임 개발 공부 기록

46일차 - RPGProject 팀 프로젝트 2

00lwt 2025. 3. 28. 21:45

▶▷ UI 화면 구성

BaseUI

public class BaseUI : MonoBehaviour
{
    [SerializeField] private Image hpBar;
    [SerializeField] private Image mpBar;
    [SerializeField] private Image expBar;
    [SerializeField] private TextMeshProUGUI gold;
    [SerializeField] private TextMeshProUGUI level;
    [SerializeField] private TextMeshProUGUI expText;
    [SerializeField] private Button shopBtn;

    private void Start()
    {
        // UIManager에 BaseUI 연결
        UIManager.Instance.SetBaseUI(this);
        shopBtn.onClick.AddListener(OpenShop);
    }

    private void OpenShop()
    {

    }
}

상점 버튼을 연결하는 AddListener를 Start()문에서 호출하여 상점을 여는 메소드와 연결해주었다

 

ShopUI

public class ShopUI : MonoBehaviour
{
    [SerializeField] private Button buyBtn;
    [SerializeField] private Button sellBtn;

    private void Start()
    {
        // UIManager에 ShopUI 연결
        UIManager.Instance.SetShopUI(this);
        buyBtn.onClick.AddListener(Buy);
        sellBtn.onClick.AddListener(Sell);
    }

    private void Buy()
    {

    }

    private void Sell()
    {

    }
}

마찬가지로 각 버튼을 연결하는 AddListener를 Start()문에서 호출하였고 해당하는 메소드들은 다른 팀원의 코드와 연결이 필요할 것 같아 우선 틀만 작성해두었다.

UI는 아직 에셋을 정하지 못해서 일단 기본 스프라이트로 구도만 대충 배치해보았다.

에셋의 경우 에셋스토어에 있는 것들이 디폴트가 배포 금지라 깃허브에 public으로 올리면 안된다고 해서 라이센스를 확인하여 배포 가능한 에셋을 따로 좀 찾아봐야 할 것 같다.

 

 

▶▷ 배운 점

1. 글씨 크기가 다른 텍스트를 붙여서 작성해야 할 때 텍스트를 각각 만들지 않고 인스펙터 창에서 Rich Text 체크 후
텍스트에서 <size=35>lv</size=35><size=40>60</size> 로 작성하는 방법이 있다. 
이렇게 하면 lv는 작게 나오고 60은 크게 나온다.

2. 스탯 등의 수치의 상한을 지정할 때 자주 쓰이는 공식 : hp = Mathf.Min(hp + item.Data.hp, maxHp);