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 |