Unity 2D 게임 UI- 아이템 설명 구현 및 상태 창 구현

2025. 7. 18. 18:26·유니티 개발/사이드 뷰 게임

이번 글에서는 아이템 설명 창 및 플레이어 상태창을 구현 한것을 정리 해보겠습니다.

 

먼저 아이템 설명창을 먼저 생성을 합니다.

이렇게 생성을 하였다면 이제 스크립트를 만들어 보겠습니다 

아이템과 게임 매니저에 값을 연결을 합니다.

//아이템
ui.GetComponent<UIManager>().GKeyActive(playerDetected, gameObject, itemData, false);
//게임 매니저
public void GKeyActive(bool active, GameObject gameObj , ItemData itemData )
{
     currentTarget = gameObj;
     itemDescription.GetComponent<ItemDescription>().SettingDescription(itemData, SItem);
}

연결을 한 이후 아이템 설명 오브젝트에 값을 전달 해줍니다.

using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class ItemDescription : MonoBehaviour
{
    public Image ItemImg;
    
    public TextMeshProUGUI ItemName;
    public TextMeshProUGUI ItemPrice;
    public TextMeshProUGUI ItemText;
    
    RectTransform rect;
    Vector2 backPos = Vector2.zero;

    void Start()
    {
        rect = GetComponent<RectTransform>();
        backPos = rect.position;
    }

    public void SettingDescription(ItemData itemData , bool SaleItem)
    {
        ItemName.text = itemData.name;
        ItemImg.sprite = itemData.ItemImg;
        
        if(SaleItem)
            ItemPrice.text = itemData.ItemPrice.ToString();
        else
            ItemPrice.text = itemData.ItemPrice.ToString(" ");
            
        ItemText.text = itemData.ItemText;
    }
    
    public void SetPos(Vector2 Pos)
    {
        rect.anchoredPosition = Pos;
    }

    public void BackPos()
    {
        rect.anchoredPosition = backPos;
    }

이렇게 전달하고 확인을 하면

이렇게 창이 나오게 됩니다

 

이제 상태 창 구현 해보겠습니다.

상태창을 만들었는대 지금 오른쪽에 보시면 많은 양의 변수값이 있습니다.

이 변수값을 게임 매니저 혹은 플레이어에게 받을려면 

return Hp;

이렇게 받아오면 게임 매니저가 너무 길어저서 저는 게임매니저에서 능력치를 한번에 묶어서 저장하였습니다,

[System.Serializable]
public class PlayerStats
{
    public float playerMaxHp;
    public float playerNowHp;
    public float playerMaxMp;
    public float playerNowMp;
    public float playerMoveSpeed;
    public float attackDemage;
    public float attackSpeed;
    public float attackDeley;
    public string cType;
    public float cPower;
    public float cTime;
    public float rollSpeed;
    public float rollDuration;
}

 

이렇게 추가를 하였습니다.

[System.Serializable]을 붙여서 인스펙터에서 값이 보이도록 직렬화 하였습니다.

이제 값이 필요한쪽에  

Instance.Stats.필요한 부분

이렇게 사용하면 됩니다. 이제 이것을 이용하면

    public void SettingText()
    {
        DamageText.text = Instance.Stats.attackDemage.ToString();
        ATSpeedText.text = Instance.Stats.attackSpeed.ToString();
        CPTypeText.text = Instance.Stats.cType;
        CPowerText.text = Instance.Stats.cPower.ToString();
        CTimeText.text = Instance.Stats.cTime.ToString();
        RollSpeedText.text = Instance.Stats.rollSpeed.ToString();
        RollDurationText.text = Instance.Stats.rollDuration.ToString();
    }

이런 방식으로 Text에 값을 넣었습니다.

esc를 누르면 플레이어의 상태창이 나옵니다.

'유니티 개발 > 사이드 뷰 게임' 카테고리의 다른 글

Unity 2D 스킬 구현  (0) 2025.07.19
Unity 2D 플레이어 스킬 UI 구현  (0) 2025.07.18
Unity 2D 게임 아이템 구현  (0) 2025.07.18
Unity 2D 게임 UI - ESC 눌렀을 때 멈춤 화면  (0) 2025.07.18
Unity 2D 게임 UI - 체력 바 및 시간 구현  (0) 2025.07.18
'유니티 개발/사이드 뷰 게임' 카테고리의 다른 글
  • Unity 2D 스킬 구현
  • Unity 2D 플레이어 스킬 UI 구현
  • Unity 2D 게임 아이템 구현
  • Unity 2D 게임 UI - ESC 눌렀을 때 멈춤 화면
dove-dove
dove-dove
dove-dove 님의 블로그 입니다.
  • dove-dove
    dove-dove 님의 블로그
    dove-dove
  • 전체
    오늘
    어제
    • 분류 전체보기 (38)
      • 유니티 개발 (38)
        • 팀 포트폴리오 - 슈퍼 마리오 (7)
        • 사이드 뷰 게임 (22)
        • 계륵 (8)
        • 깃 주소 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
dove-dove
Unity 2D 게임 UI- 아이템 설명 구현 및 상태 창 구현
상단으로

티스토리툴바