UGUI+UnityEventSystem实现UI的拖拽功能但是UI 物件拖拽到空白区时报出空引用异常,如何解决?

Unity版本2020.3
使用 UGui 和 UnityEventSystem实现 UI 格子的拖拽效果
运行后 UI 格子在空白区域放下时报空引用异常,其他时候没有报错

代码如下:

public void OnEndDrag(PointerEventData eventData)
    {
        //GameObject endPoint = eventData.pointerCurrentRaycast.gameObject;
        //Slot endPointSlot = endPoint.GetComponentInParent<Slot>();
        //以上这两个语句放在  if  语句之前当 UI 物件被拖到空白区时,报空引用异常:对象引用没有设置到对象实例

        if (eventData.pointerCurrentRaycast.gameObject != null && eventData.pointerCurrentRaycast.gameObject.GetComponentInParent<Slot>() != null)
        {
            //放进来后就不报了不知为何
            GameObject endPoint = eventData.pointerCurrentRaycast.gameObject;
            Slot endPointSlot = endPoint.GetComponentInParent<Slot>();

            this.ItemImage.sprite = endPointSlot.itemImage.sprite;
            this.itemCount.text = endPointSlot.itemCount.text;

            endPointSlot.ItemImage.sprite = drag.gameObject.GetComponentInChildren<Image>().sprite;
            endPointSlot.ItemCount.text = drag.gameObject.GetComponentInChildren<Text>().text;


        }
        //drag是用于显示拖拽物件的
        Destroy(drag);
    }

放在外面肯定是会有报空的情况呀。eventData.pointerCurrentRaycast.gameObject这句代码获取的是鼠标指针当前射线检测到的物体,当你移动的空白处,没有物体返回的是空,所以就报空异常了。你放在判断里,判断是否为空了,不为空才执行if里面语句,获取到的物体肯定不为空就不会报错了