在2D布局上,具有固定的类似按钮的GameObject,该游戏对象具有带有OnMouseDown和OnMouseUp
功能的脚本:触摸该手指并将其移开并释放,OnMouseUp
可以屏幕上相应的手指释放位置?
问题是:它是多人游戏,屏幕上还有许多其他手指!
答案 0 :(得分:1)
您不应为此使用OnMouseDown
和OnMouseUp
回调函数,因为这将要求您在Input.mousePosition
上获得触摸位置桌面和移动设备上的Input.touches
。
应该使用OnPointerDown
和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);
}
如果遇到问题,可以随时访问this帖子中的“疑难解答”部分,了解原因。
答案 1 :(得分:0)
简短回答是。但是,这与多点触控有些混乱。基本上,您可以随时获得mouse
或finger
的职位。您可以根据需要实时跟踪它,并随时轻松显示鼠标的位置。 Input.MousePosition
变量很容易抓住。当您有多个mouse
或finger
时,就会出现问题,因为您需要跟踪哪个手指在上,哪个手指仍在下。不过,如果您正确设置它,它应该可以工作,只会花费更多的精力。不过,我的建议是,如果您处理的不只一次,请在资产商店中免费使用Standalone MultiTouch Input Module.,并且我为您提供了一个链接。非常简单。