@Daniil2310

NullReferenceException: Object reference not set to an instance of an object ошибка в Unity?

Добрый день, как только я запускаю свой проект у меня появляется вот такая ошибка NullReferenceException: Object reference not set to an instance of an object
самквест.OnTriggerEnter2D, я не свосем понимаю почему, поэтому прошу вашей помощи.
вот код который появляется,когда я нажимаю на ошибку :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class самквест : MonoBehaviour
{
    public int qestnumber;
    public int[] items;
    public GameObject[] clouds;
    public GameObject barer;
    public GameObject key;

    public void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag != "Player" && other.gameObject.GetComponent<sobiraenpredmetu>().id == items[qestnumber])//ругается на эту строчку
        {
            qestnumber++;
            Destroy(other.gameObject);
            CheckQuest();   
        }
    }
    public void CheckQuest()
    {
        for (int i = 0; i < clouds.Length; i++)
        {
            if (i == qestnumber)
            {
                clouds[i].SetActive(true);
                clouds[i].GetComponent<Animator>().SetTrigger("istrigger");
                break;
            }
            else
            {
                clouds[i].SetActive(false);
            }
        }
        if (qestnumber == 2)
        {
            barer.SetActive(false);
        }
        if (qestnumber == 3)
        {
            key.SetActive(true);
        }
    }
}

Я буду очень признателен вам, если вы мне поможете. И еще : как только я кидаю нужный мне объект на сцену и запускаю ее, то у меня возникает токая ошибка - IndexOutOfRangeException: Index was outside the bounds of the array.
самквест.OnTriggerEnter2D (UnityEngine.Collider2D other. Я буду очень благодарен, если вы поможете также и с этой ошибкой.
  • Вопрос задан
  • 784 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Hixac
1) Объект, который триггерит не имеет этого компонента.
2) У тебя индекс выходит за массив, т.е. индекс больше числа элементов в массиве. В инспекторе введи число, проверь айдишник выдаваемый в условии или проверь наличие элементов в массиве. Скорее всего у тебя там проблема.

Надеюсь помог. И правильно писать не "qest", а "quest" :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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