@ivangrrrr
школьник, недавно начал изучать Unity и C#

Почему в Unity3D вылазит ошибка NullReferenceException: Object reference not set to an instance of an object?

private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.GetComponent<SpawnDestroyWall>().speed > 20 && other.tag == "Wall")
        {
            other.gameObject.GetComponent<SpawnDestroyWall>().Spawn();
        }
        if (other.gameObject.GetComponent<DestroyWallSpeed>().speed > 20 && other.tag == "WallParticl")
        {
            if (!other.gameObject.GetComponent<Rigidbody>())
            {
                other.gameObject.AddComponent<Rigidbody>();
                Destroy(other, 20);
            }
        }
    }

Этот код привязан к земле(не знаю нужна ли вам эта информация, но все же). У меня есть похожий код, который привязан к подвижному объекту и все работает, нет никаких ошибок.

Вот на всякий случай код с подвижного объекта:
private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Wall" && moveSpeed > 10)
        {
            other.gameObject.GetComponent<SpawnDestroyWall>().Spawn();
            Destroy(other, 20);
        }
        if (other.tag == "WallParticl" && moveSpeed > 10)
        {
            if (!other.gameObject.GetComponent<Rigidbody>())
            {
                other.gameObject.AddComponent<Rigidbody>();
                Destroy(other, 20);
            }
        }
    }
  • Вопрос задан
  • 329 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
99% что какой то GetComponent вернул null, а вы дальше обращаетесь. Нет проверки на то с чем столкнулись.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы