在 Unity 中拖动复合对象

Dragging composite objects in Unity

我正在 Unity2D 中编写纸牌游戏,需要将纸牌拖到具有固定位置的 table。 该卡是包含以下项目的复合游戏对象:

我希望能够将卡片拖到 table 并将其从玩家手中移除。 虽然我发现了 drag/drop 的一些实现,但它们似乎都依赖于拖动单个图像而不是游戏对象。 我可以用什么来完成这个? 提前致谢

在附加到可拖动游戏对象的脚本中实现 IBeginDragHandler, IDragHandler, IEndDragHandler 接口。

public void OnBeginDrag(PointerEventData eventData) {
    // Set parent to a RectTransform that is in front of everything else 
    this.transform.SetParent(draggablesRoot);
}

public void OnDrag(PointerEventData eventData) {
    this.transform.position = eventData.position;
}

public void OnEndDrag(PointerEventData eventData) {
    // Use "EventSystem.current.RaycastAll()" to detect whether the object was dropped onto the correct panel
}