▶▷ 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);
'게임 개발 공부 기록' 카테고리의 다른 글
48일차 - RPGProject 팀 프로젝트 4 (0) | 2025.04.01 |
---|---|
47일차 - RPGProject 팀 프로젝트 3 (0) | 2025.03.31 |
45일차 - RPGProject 팀 프로젝트 1 (0) | 2025.03.27 |
44일차 - UI 복습 3 (0) | 2025.03.26 |
43일차 - 최적화 1 (0) | 2025.03.25 |