将播放器移动到精确触摸/鼠标单击位置

时间:2016-11-03 23:36:47

标签: c# unity3d unity5

在我的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);
    }   

更新。显然,当我单击记录的位置(并且精灵移动到的位置)直接在相机上。参考图像 Click

1 个答案:

答案 0 :(得分:4)

SELECT @EarliestDate := SUBSTRING_INDEX(`dateRange`,'-',1) as StartingDate, @LatestDate := SUBSTRING_INDEX(`dateRange`,'-',-1) as EndingDate, MIN(@EarliestDate) as LowRange, MAX(@LatestDate ) as HighRange FROM `dateRangeTable`; 位于世界坐标中。 static int count = 0; while(true) { ++count; } 以像素坐标返回值。您需要将其转换为世界坐标。

transform.position

然后你可以将它分配到你的位置。

Input.mousePosition

修改

fingerPos = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position); //Mobile
fingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //Desktop