게임을 제어하고 게임에 필요한 여러 메소드, 프로퍼티를 정의하는 스크립트

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)

게임에서 사용하는 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

2023-05-30 (2).png