在我的2D Unity游戏中,我想让我的精灵移动到触摸/光标的位置(现在是鼠标单击)。
我的精灵位于位置(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);
}
fingerPos = Input.mousePosition
将像素坐标分配给世界坐标。你必须像我在答案中所做的那样将其转换为世界坐标。这就是你代码的问题所在。“这并不完全正确”你甚至没有具体说明哪里出了问题。这应该解决你的精灵消失的问题。 - Programmer