1

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

  • 父级 -> 空
  • 背景 -> 图像
  • 中 -> 图像
  • FG -> 图像
  • 值 -> 文本

我希望能够将卡片拖到桌子上并将其从玩家手中取出。虽然我发现了一些拖放的实现,但它们似乎都依赖于拖动单个图像而不是游戏对象。我可以用什么来做到这一点?提前致谢

4

1 回答 1

1

在附加到可拖动游戏对象的脚本中实现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
}
于 2017-03-30T11:44:12.200 回答