在 Unity 中拖动复合对象
Dragging composite objects in Unity
我正在 Unity2D 中编写纸牌游戏,需要将纸牌拖到具有固定位置的 table。
该卡是包含以下项目的复合游戏对象:
- 父级 -> 空
- BG -> 图片
- MID -> 图片
- FG -> 图片
- 值 -> 文本
我希望能够将卡片拖到 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
}
我正在 Unity2D 中编写纸牌游戏,需要将纸牌拖到具有固定位置的 table。 该卡是包含以下项目的复合游戏对象:
- 父级 -> 空
- BG -> 图片
- MID -> 图片
- FG -> 图片
- 值 -> 文本
我希望能够将卡片拖到 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
}