1 回答
TA贡献1816条经验 获得超4个赞
您描述的问题是 Unity 社区众所周知的。您无需放弃或制作自己的插件。Unity 多年来一直致力于开发新的输入系统。它仍处于实验模式,但看起来很有希望。
使用太慢的旧 API,您可以通过以下方式触摸屏幕:
void Update()
{
foreach (Touch touch in Input.touches)
{
if (touch.phase == TouchPhase.Began)
{
Vector2 touchLocation = touch.position;
}
}
}
使用新的低级 InputSystem API,您可以通过以下方式获取触摸信息:
public int touchIndex = 0;
void Update()
{
Touchscreen touchscreen = UnityEngine.Experimental.Input.Touchscreen.current;
if (touchscreen.allTouchControls[touchIndex].ReadValue().phase != PointerPhase.None &&
touchscreen.allTouchControls[touchIndex].ReadValue().phase != PointerPhase.Ended)
{
Vector2 touchLocation = touchscreen.allTouchControls[touchIndex].ReadValue().position;
}
}
您可以在此处获取新的 InputSystem API 。为此,您将需要 Unity 2018.2 及以上版本。最后,如果您在使用此 API 时遇到任何问题,可以在此论坛中告知他们,我们将尽快修复。
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报