Ошибка NullReferenceException: Object reference not set to an instance of an object при обновлении Text объекта [дубликат]

174
23 февраля 2019, 20:50

На данный вопрос уже ответили:

  • Что такое NullReferenceException, и как мне исправить код? 2 ответа

Делаю простую игру. Когда игрок собирает ящики, то обновляется объект Text, который показывает кол-во собраных ящиков. Но получаю ошибку:

NullReferenceException: Object reference not set to an instance of an object

и текст не обновляется. Как исправить?

Класс CounterController

 public class CounterController : MonoBehaviour {
   int numberOfBoxes;
   Text counterView;
   // Use this for initialization
   void Start () {
     ResetCounter ();
   }
   public void IncrementCounter(){
     numberOfBoxes++;
     counterView.text = numberOfBoxes.ToString();
   }
   public void ResetCounter(){
     numberOfBoxes=0;
     counterView.text = numberOfBoxes.ToString();
   }
}  

Клас PickUpBox

public class PickUpBox : MonoBehaviour {
  CounterController counterController;
  void Start () {
    counterController = GameObject.Find ("Manager").GetComponent<CounterController> ();
    if (counterController == null) {
      Debug.LogError ("CounterController не найден.");
    }
  }
  void OnTriggerEnter2D (Collider2D other) {
    if (other.gameObject.name == "Girl") {
      Destroy (this.gameObject);
      counterController.IncrementCounter ();
    }
  }
} 
Answer 1

По коду не видно, где переменной counterView задается ссылка на компонент, который и должен отображать текст. Самым простым вариантом для Вас будет сделать переменную либо общедоступной

public Text counterView;

либо видимой для Инспектора

[SerializeField]
Text counterView;

и после этого в Инспекторе задать значение переменной, перетащив нужный компонент Text.

READ ALSO
Like в DataTable

Like в DataTable

Поддерживает ли DataTable фильтрацию по LIKE с использованием []?

135
Применение Autofac в консольном приложении C# .NET

Применение Autofac в консольном приложении C# .NET

Решил пощупать на практике AutofacНо не хватает знаний для его применения

188
Хеш-таблица (Hashtable) на языке C#. Для чего она?

Хеш-таблица (Hashtable) на языке C#. Для чего она?

Изучаю теорию, подскажите, какое практическое применение Hashtable

140