3
在我的2D团结游戏中,我试图将我的精灵移动到我的触摸/光标的位置(现在是鼠标点击)。移动玩家到精确的触摸/鼠标点击位置
我的精灵在位置(173,48,-52.1)。但是,当我点击一个距离可能只有几个像素的位置时,我的位置变为(399,129,0),我的精灵显然会投掷到广阔的未知数中。
if (Input.GetMouseButtonDown(0))
{
//fingerPos = Input.GetTouch(0).position;
fingerPos = Input.mousePosition;
transform.position = fingerPos;
Debug.Log(transform.position);
}
编辑
当前代码
if (Input.GetMouseButtonDown (0)) {
fingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //Desktop
transform.position = fingerPos;
Debug.Log (transform.position);
}
更新。有意思的是,当我点击记录的位置(并且精灵被移动到的位置)直接在相机上。参考图像
其实在审查,这是行不通完全正确的。角色移动到屏幕上的特定位置。不是我碰到的地方。 – Niana
您的问题**“我的精灵显然投掷到了广阔的未知领域”**这是因为您正在使用'fingerPos = Input.mousePosition'将像素坐标分配给世界坐标。您必须将其转换为世界坐标,就像我在答案中所做的一样。这是你的代码的问题。 **这不起作用,完全正确“**你甚至没有具体说明什么是不工作的,这应该可以解决你的精灵消失的问题 – Programmer
每当我点击屏幕时,调试日志中返回给我的坐标是请看我的代码编辑 – Niana