Как я могу разрешить NullReferenceException при запуска диалога в Unity? [дублировать]C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу разрешить NullReferenceException при запуска диалога в Unity? [дублировать]

Сообщение Anonymous »

Я разрабатываю систему диалога в Unity, и я сталкиваюсь с NullreferenceException, когда игрок сталкивается с объектом. Мой код структурирован следующим образом: < /p>
dialoguecall.cs

Код: Выделить всё

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class DialogueCall : MonoBehaviour
{
public DialogueTrigger dialogueTrigger;
public GameObject[] gameObjects;

void Start() {
dialogueTrigger = GameObject.FindGameObjectWithTag("Dialog").GetComponent();
}

private void OnTriggerEnter(Collider other) {
if (other.gameObject.tag == "Player") {
for (int a=0; a < 5; a++) {
gameObjects[a].SetActive(false);
}
dialogueTrigger.TriggerDialogue();
}
}
}
< /code>
dialoguetrigger.cs:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DialogueTrigger : MonoBehaviour {
public Dialogue dialogue;

public void TriggerDialogue() {
FindObjectOfType().StartDialogue(dialogue);
}
}
< /code>
Оператор задачи:
Когда мой игрок сталкивается с объектом, я ожидаю, что метод triggerdialogue () из класса Dialoguetrigger будет вызван. Тем не менее, я получаю ошибку: < /p>
NullReferenceException: Object reference not set to an instance of an object
DialogueCall.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/DialogueCall.cs:20)
Что я проверил:

Существует диалог gameobject: я обеспечил, что в сцене существует объект «диалог», в котором содержится компонент диалога. /> Инициализация массива: массив GameObjects уже заполнен инспектором. Похоже, что это проблема с тем, как DialogueTrigger инициализируется или доступна. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/776 ... e-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»