在Unity中拖动复合对象

时间:2017-03-30 09:12:47

标签: c# user-interface unity3d unity2d

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

  • 父母 - >空
  • BG - >图像
  • MID - >图像
  • FG - >图像
  • 值 - >文本

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

1 个答案:

答案 0 :(得分: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
}