在 2D 布局上,有一个固定的类似按钮的游戏对象,它有一个带有 OnMouseDown 和OnMouseUp
功能的脚本:触摸它并将手指移开并释放,这可以在屏幕上OnMouseUp
获得相应的手指释放位置吗?
问题是:它是多人游戏,屏幕上有许多其他手指!
您不应该为此使用OnMouseDown
和OnMouseUp
回调函数,因为这需要您Input.mousePosition
在桌面和Input.touches
移动设备上获得触摸位置。
这应该通过给你作为参数的OnPointerDown
and函数来完成。您可以使用 访问那里的指针位置。它可以在移动设备和桌面设备上运行,而无需为每个平台编写不同的代码。请注意,您必须实现 和接口才能调用这些函数。OnPointerUp
PointerEventData
PointerEventData.position
IPointerDownHandler
IPointerUpHandler
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("Mouse Down: " + eventData.position);
}
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log("Mouse Up: " + eventData.position);
}
如果您遇到问题,您可以随时访问这篇文章的故障排除部分以了解原因。
简短的回答是的。然而,这变得有点混乱与多点触控。基本上你可以随时得到mouse
或finger
位置。如果需要,您可以实时跟踪它并随时轻松显示鼠标的位置。Input.MousePosition
变量很容易抓取。当您有多个手指时,问题就出现了,mouse
或者finger
您需要跟踪哪个手指在上,哪些手指仍然在下。不过,如果设置正确,它应该可以工作,只是需要更多的努力。不过,我的建议是,如果您处理不止一次触摸,请使用独立的 MultiTouch 输入模块。它在资产商店中是免费的,我为您提供了一个链接。这很简单。