我正在尝试创建一个像WordCookie这样的游戏。我想使用线条渲染器,因此无法使用Screen Space - Overlay
画布渲染器模式。使用 Screen Space - Camera
或 World 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));