Menu
CoddyTech

점수 표시하기

Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 2번째.

텍스트의 text는 문자열이므로 숫자를 표시하기 전에 텍스트로 바꿔야 합니다. +로 문자열에 이어 붙이면 됩니다. "Wood: " + wood는 wood가 12일 때 Wood: 12가 되고, wood.ToString()은 12가 됩니다. int만으로는 맞지 않습니다. woodText.text = wood;는 CS0029 오류와 함께 실패합니다. int 형식을 string 형식으로 암시적으로 변환할 수 없습니다.

숫자는 int 필드에 저장되고, 텍스트는 그 값을 보여 주기만 합니다. 하나의 메서드가 필드의 값으로 텍스트를 다시 설정합니다. 숫자가 바뀔 때마다 이 메서드를 호출하고, Start()에서도 호출하므로 첫 프레임에는 Inspector에 입력된 값이 아니라 실제 값이 표시됩니다. 여기서는 Space 키를 누르면 통나무 3개를 얻습니다.

public TMP_Text woodText;
private int wood;

void Start()
{
    ShowWood();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        wood += 3;
        ShowWood();
    }
}

void ShowWood()
{
    woodText.text = "Wood: " + wood;
}

텍스트는 wood가 바뀔 때만 바뀝니다. 매 Update()마다 텍스트를 다시 설정해도 똑같이 보이겠지만, 아무 이유 없이 초당 60번 새 문자열을 만들게 됩니다. 순서가 중요합니다. wood += 3보다 먼저 ShowWood()를 호출하면 이전 횟수가 표시되어 한 번 누른 만큼 뒤처집니다.

challenge icon

챌린지

쉬움

정원사는 나무를 심습니다. 화살표 키로 정원사를 움직이고, 씨앗이 남아 있는 동안 스페이스 키를 누르면 묘목을 심습니다. 이 동작은 Gardener.cs에 이미 구현되어 있습니다. 화면에 개수를 표시하세요. 씬에서는 seedsText와 treesText가 연결되어 있습니다.

  • seedsText에는 남은 씨앗 수가 Seeds: 4와 같이 표시되고, treesText에는 심은 나무 수가 Trees: 1과 같이 표시됩니다.
  • 두 텍스트 모두 첫 프레임부터, 그리고 나무를 심을 때마다 올바른 값을 표시해야 합니다. Inspector에서 정원사에게 씨앗 5개를 설정하지만, 씬의 텍스트는 여전히 Seeds: 10과 Trees: ?로 표시됩니다.
  • 두 텍스트를 모두 설정하는 메서드를 하나 작성하고, 필요한 곳마다 호출하세요.

Play를 눌러 씨앗이 다 떨어질 때까지 심은 다음, Check를 누르세요.

직접 해보기

using UnityEngine;
using TMPro;

public class Gardener : MonoBehaviour
{
    public float speed = 4f;
    public int seeds = 10;
    public GameObject saplingPrefab;
    public TMP_Text seedsText;
    public TMP_Text treesText;
    private int trees;

    void Update()
    {
        float move = Input.GetAxisRaw("Horizontal");
        transform.Translate(move * speed * Time.deltaTime, 0f, 0f);

        if (Input.GetKeyDown(KeyCode.Space) && seeds > 0)
        {
            Vector3 spot = new Vector3(transform.position.x, 0.5f, 1.5f);
            Instantiate(saplingPrefab, spot, Quaternion.identity);
            seeds--;
            trees++;
        }
    }

    // 첫 프레임부터 두 텍스트에 각각 Seeds:와 Trees:를 표시하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

실제 게임 만들기의 모든 레슨