Кто знает, как решить ошибку? NullReferenceException: Object reference not set to

an instance of an object
DriftManager.ManageUI () (at Assets/Drift Physics/DriftManager.cs:111)
DriftManager.Update () (at Assets/Drift Physics/DriftManager.cs:44)

12 ответов

11 просмотров

Что то, что ты пытаешься вызвать равно null

Дрифт менеджер глянь Там ссылок не хватает

В классе DriftManager в Update в строке 44 вызывается ManageUI, где в строке 111 используется поле с нулевым значением. Загляни туда и сделай так, чтобы значение определялось до использования.

Камиль Сайфин
Как это сделать?

Загляни в ManageUI 111 строку.

Камиль Сайфин
И

И посмотри что там вызывается.

Камиль-Сайфин Автор вопроса
Алексей
И посмотри что там вызывается.

currentScoreText.text=currentScore.ToString("###,###,000")

Камиль Сайфин
currentScoreText.text=currentScore.ToString("###,#...

Значит currentScoreText = null в момент вызова. Когда ему назначается экземпляр, в старте?

Камиль-Сайфин Автор вопроса
Алексей
Значит currentScoreText = null в момент вызова. Ко...

using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using System.Threading.Tasks; public class DriftManager : MonoBehaviour { public Rigidbody playerRB; public TMP_Text totalScoreText; public TMP_Text currentScoreText; public TMP_Text factorText; public TMP_Text driftAngleText; private float speed=0; private float driftAngle=0; private float driftFactor=1; private float currentScore; private float totalScore; private bool isDrifting = false; public float minimumSpeed = 5; public float minimumAngle = 10; public float driftingDelay = 0.2f; public GameObject driftingObject; public Color normalDriftColor; public Color nearStopColor; public Color driftEndedColor; private IEnumerator stopDriftingCoroutine = null; // Start is called before the first frame update void Start() { driftingObject.SetActive(false); } // Update is called once per frame void Update() { ManageDrift(); ManageUI(); } void ManageDrift() { speed = playerRB.velocity.magnitude; driftAngle = Vector3.Angle(playerRB.transform.forward, (playerRB.velocity + playerRB.transform.forward).normalized); if (driftAngle > 120) { driftAngle = 0; } if (driftAngle >= minimumAngle && speed > minimumSpeed) { if(!isDrifting||stopDriftingCoroutine!=null) { StartDrift(); } } else { if (isDrifting && stopDriftingCoroutine == null) { StopDrift(); } } if (isDrifting) { currentScore += Time.deltaTime * driftAngle * driftFactor; driftFactor += Time.deltaTime; driftingObject.SetActive(true); } } async void StartDrift() { if (!isDrifting) { await Task.Delay(Mathf.RoundToInt(1000 * driftingDelay)); driftFactor = 1; } if (stopDriftingCoroutine != null) { StopCoroutine(stopDriftingCoroutine); stopDriftingCoroutine = null; } currentScoreText.color = normalDriftColor; isDrifting = true; } void StopDrift() { stopDriftingCoroutine = StoppingDrift(); StartCoroutine(stopDriftingCoroutine); } private IEnumerator StoppingDrift() { yield return new WaitForSeconds(0.1f); currentScoreText.color = nearStopColor; yield return new WaitForSeconds(driftingDelay * 4f); totalScore += currentScore; isDrifting = false; currentScoreText.color = driftEndedColor; yield return new WaitForSeconds(0.5f); currentScore = 0; driftingObject.SetActive(false); } void ManageUI() { totalScoreText.text = "Total: " + (totalScore).ToString("###,###,000"); factorText.text = driftFactor.ToString("###,###,##0.0")+"X"; currentScoreText.text=currentScore.ToString("###,###,000"); driftAngleText.text=driftAngle.ToString("###,##0") + "°"; } }

Камиль Сайфин
using System.Collections; using System.Collection...

Вместо TMP_Text используй TextMeshProUGUI и определи все переменные в инспекторе.

Камиль-Сайфин Автор вопроса

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

Обсуждают сегодня

Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта