@Viach27

Как вывести счёт на экран?

У меня есть корзина, в которой существует переменная score, которая ведет подсчёт очков:

private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Apple"))
        {
            Destroy(other.gameObject);
            PlayPickupSound(applePickupSound);
            
            score += 1;
            
        }

Мне нужно вывести очки на экран с помощью текста.
Я написал такой скрипт:

using UnityEngine;
using UnityEngine.UI;

public class ScoreDisplay : MonoBehaviour
{
    public Basket basket;

    private Text scoreText;

    private void Start()
    {
        scoreText = GetComponent<Text>();
        if (scoreText == null)
        {
            Debug.LogError("Text component not found!");
        }

        if (basket == null)
        {
            Debug.LogError("Basket reference not assigned!");
        }
    }

    private void Update()
    {
        if (scoreText != null && basket != null)
        {
            scoreText.text = basket.score.ToString();
        }
    }
}

Прикрепил его к тексту, добавил в окне инспектора нужный объект из иерархии:

6591305c4e64a315917590.png
, но текст не найден (текст если, что не пустой, как видите там ноль).
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега Unity
Попробуйте сделать поле public, чтобы оно автоматически отобразилось в инспекторе. Затем перетащите туда объект с текстом и перезапустите игру.

Если хотите оставить private, то пометьте атрибутом SerializedField.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы