게임을 제어하고 게임에 필요한 여러 메소드, 프로퍼티를 정의하는 스크립트
Hierarchy - Create Empty(GameController) - GameController 스크립트 등록
using UnityEngine;
public class GameController : MonoBehaviour
{
private readonly float scoreScale = 20; // 점수 증가 계수 (읽기전용)
// 플레이어 점수 (죽지않고 버틴 시간)
public float CurrentScore { private set; get; } = 0;
void Update()
{
// 버틴 시간을 점수로 환산하기 때문에 Update() 메소드에서
// CurrentScore 프로퍼티에 Time.deltaTime * scoreScale을 더함
CurrentScore += Time.deltaTime * scoreScale;
}
}
Assets - Fonts 폴더 생성 - 다운 받은 폰트 등록
window - TextMeshPro - Font Asset Creator
Source Font File: 다운 받은 폰트 등록
Atlas Resolution: 2048 / 2048
Character Set: Custom Characters - Custom Character List: 한글 2350 + 특수문자 붙여넣기 - Generate Font Atlas - save
Hierarchy - UI - (Text - TexMeshPro)
Canvas - Canvas Scaler

Text(TMP): CurrentScore
.png)
UIController 스크립트
게임에서 사용하는 UI를 제어하는 스크립트
using UnityEngine;
using TMPro;
public class UIController : MonoBehaviour
{
[SerializeField]
private GameController gameController;
[SerializeField]
private TextMeshProUGUI textScore;
void Update()
{
// 현재 점수를 소수점 자리수가 없는 실수(F0)로 출력
textScore.text = gameController.CurrentScore.ToString("F0");
}
}
Hierarchy - GameController - UIController.cs 등록
Game Controller: GameController.cs
Text Score: CurrentScore
.png)