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

    @MR_IKS Автор вопроса
    В общем ковырялся, и в какой-то момент ошибка пропала. Я так и не понял из-за чего. Я восстановил всё как было при ошибке. Но теперь всё работает. ВТФ?
  • Object reference not set to an instance of an object. Как такое возможно?

    @MR_IKS Автор вопроса
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Sun_Ray : MonoBehaviour
    {
        public LayerMask NeedLayer;
        RaycastHit2D maskHit;
        Mirror_BP HitMirrorBP;
        void Update()
        {
            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();
                    }
                }
                
            }
    
        }
    }


    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Mirror_BP : MonoBehaviour
    {
        public Vector2 PointHit;
        public Vector2 inDirection;
        public Transform NormalPos;
        public float distance;
        public LayerMask NeedLayer;
    
        public void Mirror()
        {
            RaycastHit2D Hit = Physics2D.Raycast(new Vector2(-2,0), Vector2.right, distance, NeedLayer);
            if (Hit.transform != null)
            {
                if(Hit.collider.tag == "Mirror")
                {
                    Debug.DrawLine(transform.position, Hit.point, Color.red);
                    Hit.collider.GetComponent<Mirror_BP>().Mirror();
                }
            }
            else
            {
                RaycastHit2D DebugHit = Physics2D.Raycast(new Vector2(-2, 0), Vector2.right, distance);
                Debug.DrawLine(new Vector2(-2, 0), DebugHit.point, Color.blue);
            }
        }
    }


    NullReferenceException: Object reference not set to an instance of an object
    Mirror_BP.Mirror () (at Assets/Scripts/Mirror_BP.cs:21)
    Sun_Ray.Update () (at Assets/Scripts/Sun_Ray.cs:21)
  • Object reference not set to an instance of an object. Как такое возможно?

    @MR_IKS Автор вопроса
    Извините. Я погуглил, но так и не понял как сделать Стектрейс. Что мне нужно сделать?