我有一个小问题。我似乎找不到一种好的方法来区分Unity是否在触发鼠标抬起事件或者是触摸屏幕后释放手指的触摸抬起事件。我的问题是:用户同时释放选择的内容并点击UI按钮(换句话说,我正在尝试检测仅鼠标抬起或仅触摸抬起 - 我该如何做到这一点?)。我尝试使用Input.GetMouseButtonUp(0)和Input.GetMouseButton(0),但两者都会更改它们的状态以响应触摸抬起或鼠标按钮抬起事件。那么,如何正确区分二者?我甚至尝试了使用Touch.fingerId属性来跟踪/区分仅限于触摸事件,但问题在于,即使是在触摸抬起事件的情况下,我仍然无法仅区分鼠标抬起与Input.GetMouseButton(0)。是否有人知道在Unity中分别检测鼠标或触摸释放的正确方法?
编辑: 有人没有理解这个问题,所以我们假设你有一台支持触摸的桌面设备,并添加此脚本:
编辑: 有人没有理解这个问题,所以我们假设你有一台支持触摸的桌面设备,并添加此脚本:
void Update () {
if (Input.GetMouseButtonDown(0))
Debug.Log("Mouse button down.");
if (Input.GetMouseButtonUp(0))
Debug.Log("Mouse button up.");
}
如果您用鼠标左键点击并按住,接着用手指触摸屏幕并松开,这时会记录鼠标按钮抬起的事件,尽管您并没有释放鼠标按钮。我该如何区分鼠标抬起和触摸释放事件?
Input.GetMouseButtonUp(0)
实际上将计算为true,但我需要一种确定是否仅释放了左鼠标按钮的方法。 - AlexandruInput.GetMouseButton
。虽然它可能有效,但这是错误的。请注意我的答案中将两个示例分开。我期望你在运行时使用Application.isMobilePlatform
来确定使用哪一个,或者在编译时使用 Unity 的指令来确定。 - ProgrammerTouch
类并分离输入,否则会遇到问题。 - Programmer