Сценарий, на который ссылается основная камера, отсутствует

Я знаю, что по поводу этой ошибки всегда возникает много вопросов, НО мне не удалось исправить ее предыдущими ответами ...

Итак, позвольте мне объяснить.

Я работаю с техником Hololens. Недавно я обновился с HoloToolKit до MRTK V2 (новый SDK, предоставленный Microsoft и сообществом). Мое приложение работало с HoloToolKit, Unity и 2017.4. Я обновился для MRTKv2 и 2019.2 (рекомендуется).

У меня есть скрипты, использующие положение камеры. В моем предыдущем приложении Camera была BiCamera (GameObject), потомком Basic (GameObject). А моя BiCamera была помечена как MainCamera. Прямо сейчас моей камерой была основная камера (с пробелом между двумя словами) с тегом MainCamera, дочерним элементом MixedRealityPlayspace. Эта камера предоставляется MRTKv2. Я не могу изменить настройки.

Итак, когда я нахожусь в режиме воспроизведения, у меня появляется это сообщение желтого цвета:

 The referenced script on this Behaviour (Game Object 'Main Camera') is missing!

И когда я перемещаю свою основную камеру, чтобы имитировать прогулку пользователя (Hololens = дополненная реальность), у меня появляется это сообщение красного цвета:

 NullReferenceException: Object reference not set to an instance of an object
 TextSpeedUI.Update () (at Assets/Scripts/TextSpeedUI.cs:23) 

Я думаю, что второе сообщение связано с первым ... Моему сценарию TextSpeedUI требуется camera.transform для расчета скорости ходьбы (на самом деле, не напрямую, он находит общедоступную переменную из другого GameObject, но для этого GameObject требуется Camera.transform).

Другой вариант связан с основной камерой GameObject, предоставляемой MRTK, потому что, когда я выбираю этот GameObject, у меня отсутствует скрипт. Сообщение говорит, что мне нужно исправить ошибки компиляции ... Но, возможно, это следствие, а не происхождение ... Я заблудился.

TextSpeedUI.cs 23

 if (sd.isActiveAndEnabled && sd.Steps.Count > 4)
 {
     xzSpeed = (sd.Steps[sd.Steps.Count - 1].localMinPosition - sd.Steps[sd.Steps.Count - 4].localMinPosition) / ((sd.Steps[sd.Steps.Count - 1].t - sd.Steps[sd.Steps.Count - 4].t));
     txt.text = (xzSpeed.magnitude * 3.6).ToString("0.##"); // speed in km/h
 }

sd поступает из общедоступного StepDetector sd; который находится в начале моего скрипта TextSpeedUI.cs

А мой сценарий StepDetector.cs вызывает общедоступный DataManager dm;

В моем сценарии DataManager.cs я сначала вызываю:

 public Camera Cam { get; private set; }

И в аннулировании Старт:

 Cam = Camera.main;

Большое спасибо


person Anelor Guinet    schedule 13.10.2019    source источник


Ответы (1)


Решил сам (просто удали компонент). Похоже, на моей сцене это не имеет значения ...

person Anelor Guinet    schedule 16.10.2019