#c# #unity3d
#c# #unity3d
Вопрос:
У меня проблема с созданием счетчика монет для игры. Под ним находится часть моего кода:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Jump : MonoBehaviour
{
private Text coins_text;
void Start()
{
coins_text = GetComponent<Text>();
}
проблема, похоже, в методе обновления:
void Update()
{
coins_text.text = coins.ToString();
}
Вот ошибка:
Исключение NullReferenceException: ссылка на объект не установлена на экземпляр объекта
Приветствуется любая помощь. Прыжок.Update () (в Assets/Scenes/Jump.cs:34)
Ответ №1:
Приветствуем нового пользователя,
-
не утруждайте себя использованием «GetComponent»,
-
вместо этого используйте
общедоступный текст coins_text;
-
и откройте свой редактор и буквально перетащите «текстовый элемент» в этот слот
(Если вы не знакомы с тем, как это сделать, ознакомьтесь с некоторыми базовыми инструкциями в Unity!)
Далее,
- если вы используете «GetComponent»
добавьте эту строку кода
if (coins_text == null) { Debug.Log("there's a f'up"); }
coins_text.text = coins.ToString();
он четко сообщит вам, действительно ли текстовый элемент отсутствует!
- НИКОГДА НЕ устанавливайте текст в Update. Вы не можете этого сделать.
Вы должны устанавливать его только при изменении целочисленного значения «монет».
Есть много способов сделать это, но просто сделайте это просто. Есть отдельная функция, которую вы вызываете, чтобы изменить отображение, когда вам нужно.