触摸和画布元素位置不匹配



我正在尝试创建一个像WordCookie这样的游戏。我想使用线条渲染器,因此无法使用Screen Space - Overlay画布渲染器模式。使用 Screen Space - CameraWorld View 时,我的Touch位置与我从RectTransforms获得的位置不匹配。

我通过记录来访问按钮的转换位置:

foreach (RectTransform child in buttons.transform)
{
    Debug.Log("assigning" + child.transform);
}

对于触摸协调,我只需记录touch.position

澄清;我想在位置向量之间的距离小于某个浮点数时触发我的 LineRenderrer。但是,每当我点击按钮进行测试时,按钮都会记录在 (1.2, -2.6( 处,我的触摸记录在 (212.2, 250.4(。

可能是什么原因造成的?

touch.position使用像素坐标返回一个值。为了转换为世界坐标,您需要使用:Camera.ScreenToWorldPoint应该是这样的:

Vector2 touch = Input.GetTouch(0);
float buttonPositionZ = button.transform.position.z;
Vector3 worldPosition = camera.ScreenToWorldPoint(new Vector3(touch.x, touch.y, buttonPositionZ));

最新更新