본문 바로가기
Game/Unity

[Unity] UI Text script로 변경하기

by code_pie 2024. 3. 27.

UI Text를 script로 변경하기

 

먼저 Hierarchy에 TextMeshPro를 추가하기

 

 

 

그리고 script에서 접근해 사용하기 위해 public으로 가져올 TextMeshProGui를 아래와 같이 선언

 

 

public으로 선언한 TextMeshProUGUI를 할당해주기 위해 아래 그림과 같이 TextMeshProUGUI를 drag & drop

 

 

이후 script에서 TextMeshProUGUI.text로 접근해 안에 들어갈 text를 변경해 주면 끝!

 

아래는 코드 예시입니다.

using System.Collections;
using TMPro;
using UnityEngine;

public class PlayerManager : MonoBehaviour
{
	// 값
    int money; 
    int luck;
    float damage;
    float health;
    float maxHP;
    float range;
    float healthDelay;
    float defence;
    float attackSpeed;
	
    // text를 표시할 TextMeshProUGUI들
    public TextMeshProUGUI moneyText;
    public TextMeshProUGUI luckText;
    public TextMeshProUGUI damageText;
    public TextMeshProUGUI hpText;
    public TextMeshProUGUI defenceText;
    public TextMeshProUGUI rangeText;
    public TextMeshProUGUI attackSpeedText;
    public TextMeshProUGUI healText;


	// 값들을 update 해주는 함수들 (굳이 함수로 만들지 않고 사용해도 된다)
    void SetMoneyText()
    {
        moneyText.text = ": " + money+" Gold";
    }
    
    void SetLuckText() 
    {
        luckText.text = ": " + luck + " Luck";
    }
    void SetDamageText() 
    {
        damageText.text=": "+damage+" dps";
    }
    void SetHpText() 
    {
        Debug.Log(health + " : " + maxHP);
        hpText.text="HP : "+health+" / "+maxHP;
    }
    void SetDefenceText() 
    {
        defenceText.text = "df : "+defence;
    }
    void SetRangeText() {
        rangeText.text= "range : ";
    }
    void SetAttackSpeedText()
    { 
        attackSpeedText.text = ": "+attackSpeed;
    }
    void SetHealText() 
    {
        healText.text=": "+healthDelay;
    }
}

 

예시처럼 계속해서 값이 변경되거나 하는 경우 변수를 text에 넣어 값이 변경될 때마다 업데이트를 해 UI에 표시되는 값이 변하게 됩니다.

 

반응형

'Game > Unity' 카테고리의 다른 글

[Unity] Touch로 물체 Drag하기  (0) 2024.04.04
[Unity] Script LifeCycle [스크립트 생명주기]  (0) 2024.01.02