Unity 5.3.2 — невозможно использовать текстовый объект пользовательского интерфейса в инспекторе

Итак, прошлой ночью я обновился до Unity 5.3.2, и теперь я не могу перетащить объект UI Text в скрипт в инспекторе. (Изображения ниже)

введите здесь описание изображения

введите здесь описание изображения

Ошибок компилятора нет, кроме как во время выполнения. Я получаю эту ошибку каждый раз:

NullReferenceException: Object reference not set to an instance of an object Scoring.updateScores () (at Assets/Scripts/Scoring.js:21)

У меня есть код javascript ниже. Комментарии - это то, что я пробовал. Пожалуйста, запросите и необходимые разъяснения.

#pragma strict

var score : int;
//var scoreScore : GameObject;
//var highScore : GameObject;
var scoreScore : UnityEngine.UI.Text;
var highScore : UnityEngine.UI.Text;

function Start () {
    //scoreScore = GameObject.Find("scoreScore").GetComponent.<UnityEngine.UI.Text>();
    //highScore = GameObject.Find("highScore").GetComponent.<UnityEngine.UI.Text>();
    score = 0;
    updateScores();
}

function updateScores() {
    if (score >= PlayerPrefs.GetInt("highScore")) {
        PlayerPrefs.SetInt("highScore", score);
    }

    scoreScore.text = "" + score.ToString();
    highScore.text = "" + PlayerPrefs.GetInt("highScore");
}

person stringlapse    schedule 06.02.2016    source источник
comment
естественно ошибок компиляции нет, ошибка возникает при попытке обращения к нулевым переменным, что вы пытаетесь к ним перетащить??   -  person Hassan Khallouf    schedule 06.02.2016
comment
Я пытаюсь перетащить элементы UI Text из иерархии   -  person stringlapse    schedule 06.02.2016
comment
Я могу схватить и перетащить их, я просто не могу их бросить   -  person stringlapse    schedule 06.02.2016
comment
Вы уверены, что перетаскиваете текстовый элемент? единственный случай, когда единство не позволит вам, если к перетаскиваемому игровому объекту не прикреплен компонент UIText, чтобы убедиться, нажмите на правый кружок и попробуйте выбрать свои объекты из меню, не перетаскивая   -  person Hassan Khallouf    schedule 06.02.2016
comment
Хммм... Я создал объект с помощью Create›UI›Text. Это работает?   -  person stringlapse    schedule 06.02.2016
comment
это должно работать, конечно, это самый простой способ создать текстовый элемент, попробуйте сделать то, что я сказал, чтобы попытаться изолировать ошибку   -  person Hassan Khallouf    schedule 06.02.2016
comment
Ничего не появляется в меню, когда я нажимаю на кружок. Почему?   -  person stringlapse    schedule 06.02.2016
comment
Имя компонента объекта — Текст (сценарий). Почему это так?   -  person stringlapse    schedule 06.02.2016
comment
Это означает, что в вашей сцене нет текстовых элементов! это странно, я не очень хорошо разбираюсь в сценариях js в единстве, отсутствие ничего в этом меню означает, что у вас нет текстовых объектов, вы пытались создать новый? что значит, почему скрипт? так компонент называется   -  person Hassan Khallouf    schedule 06.02.2016
comment
У меня есть 4 текстовых элемента! Я использую приложение stackexchange прямо сейчас. Я обновлю вопрос скриншотом иерархии, когда вернусь к своему компьютеру.   -  person stringlapse    schedule 06.02.2016
comment
Я не знаю, чего не хватает, я попробовал именно то, что вы сделали, и это работает отлично, пробовал другую сцену? перезапустить единство?   -  person Hassan Khallouf    schedule 06.02.2016
comment
Не пробовал другую сцену, перезапустил единство. Я попробую перезапустить снова, а затем сделаю новую сцену   -  person stringlapse    schedule 06.02.2016


Ответы (2)


Когда вы просматриваете скрипт в Инспекторе (нажав на него в папке Активы), вы можете установить объекты по умолчанию для этого скрипта. Эти объекты могут быть только из ваших Sssets — это не позволит вам перетаскивать объекты из определенной сцены. Вы можете перетаскивать объекты из сцены только в экземпляры скриптов внутри этой сцены (например, скрипт подсчета очков, прикрепленный к определенному игровому объекту).

Попробуйте создать GameObject, прикрепить к нему скрипт Scoring, выбрать этот GameObject в инспекторе и перетащить элементы UIText в экземпляр скрипта, который вы прикрепили к этому GameObject.

person HalpPlz    schedule 06.02.2016

Перетащите эти текстовые объекты в свой проект, сделайте их готовыми. Затем вы можете назначить их.

person Cagri Karabulut    schedule 07.09.2020
comment
Этому вопросу 4 с половиной года, но я ценю ответ - person stringlapse; 08.09.2020