@MR_IKS
Начинающий разработчик игр

Object reference not set to an instance of an object. Как такое возможно?

Проверка на то, что объект не является нулевым. А строчка вызова выдаёт ошибку:
Object reference not set to an instance of an object.
Как это вообще возможно?

if(HitMirrorBP != null)
 {
     HitMirrorBP.Mirror();
 }
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 3
@MR_IKS Автор вопроса
Начинающий разработчик игр
maskHit = Physics2D.Raycast(transform.position, Vector2.down, 10f, NeedLayer);
        if (maskHit.transform != null)
        {
            if(maskHit.collider.tag == "Mirror")
            {
                Debug.DrawLine(transform.position, maskHit.point, Color.red);
                HitMirrorBP = maskHit.transform.GetComponent<Mirror_BP>();
                if(HitMirrorBP != null)
                {
                    HitMirrorBP.Mirror();
                }

Вопрос в том, как может быть эта ошибка, если условие правда?
Mirror() - Это функция в скрипте другого объекта.
Ответ написан
DanceM
@DanceM Куратор тега C#
Кто хочет -ищет способ, кто не хочет -ищет причину
NullReferenceException: Object reference not set to an instance of an object
Mirror_BP.Mirror () (at Assets/Scripts/Mirror_BP.cs:21)

Ошибка выходит в строке 21, и если я правильно посчитал, то это:
Hit.collider.GetComponent<Mirror_BP>().Mirror();
Подозреваю луч задел объект на котором нет компонента Mirror_BP.
Ответ написан
Ваш ответ на вопрос

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

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