Кто знает, как решить ошибку? 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 ответов

14 просмотров

Что то, что ты пытаешься вызвать равно 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 и определи все переменные в инспекторе.

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

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

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

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