您可以从OnMouseDown和OnMouseUp获得手指位置吗?

时间:2018-10-16 00:40:29

标签: c# unity3d onmouseup

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

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

2 个答案:

答案 0 :(得分:1)

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

应该使用OnPointerDownOnPointerUp函数为您提供PointerEventData作为参数。您可以使用PointerEventData.position访问那里的指针位置。它可以在移动设备和台式设备上运行,而不必为每个平台编写不同的代码。请注意,必须实现IPointerDownHandlerIPointerUpHandler接口,才能调用这些功能。

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)

简短回答是。但是,这与多点触控有些混乱。基本上,您可以随时获得mousefinger的职位。您可以根据需要实时跟踪它,并随时轻松显示鼠标的位置。 Input.MousePosition变量很容易抓住。当您有多个mousefinger时,就会出现问题,因为您需要跟踪哪个手指在上,哪个手指仍在下。不过,如果您正确设置它,它应该可以工作,只会花费更多的精力。不过,我的建议是,如果您处理的不只一次,请在资产商店中免费使用Standalone MultiTouch Input Module.,并且我为您提供了一个链接。非常简单。