1

在 2D 布局上,有一个固定的类似按钮的游戏对象,它有一个带有 OnMouseDown 和OnMouseUp功能的脚本:触摸它并将手指移开并释放,这可以在屏幕上OnMouseUp获得相应的手指释放位置吗?

问题是:它是多人游戏,屏幕上有许多其他手指!

4

2 回答 2

1

不应该为此使用OnMouseDownOnMouseUp回调函数,因为这需要您Input.mousePosition在桌面和Input.touches移动设备上获得触摸位置。

这应该通过给你作为参数的OnPointerDownand函数来完成。您可以使用 访问那里的指针位置。它可以在移动设备和桌面设备上运行,而无需为每个平台编写不同的代码。请注意,您必须实现 和接口才能调用这些函数。OnPointerUpPointerEventDataPointerEventData.positionIPointerDownHandlerIPointerUpHandler

public void OnPointerDown(PointerEventData eventData)
{
    Debug.Log("Mouse Down:  " + eventData.position);
}

public void OnPointerUp(PointerEventData eventData)
{
    Debug.Log("Mouse Up: " + eventData.position);
}

如果您遇到问题,您可以随时访问这篇文章的故障排除部分以了解原因。

于 2018-10-16T05:13:55.007 回答
0

简短的回答是的。然而,这变得有点混乱与多点触控。基本上你可以随时得到mousefinger位置。如果需要,您可以实时跟踪它并随时轻松显示鼠标的位置。Input.MousePosition变量很容易抓取。当您有多个手指时,问题就出现了,mouse或者finger您需要跟踪哪个手指在上,哪些手指仍然在下。不过,如果设置正确,它应该可以工作,只是需要更多的努力。不过,我的建议是,如果您处理不止一次触摸,请使用独立的 MultiTouch 输入模块。它在资产商店中是免费的,我为您提供了一个链接。这很简单。

于 2018-10-16T01:39:15.930 回答