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);
}