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);
}
EDIT
現在のコード
if (Input.GetMouseButtonDown (0)) {
fingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //Desktop
transform.position = fingerPos;
Debug.Log (transform.position);
}
更新。 Apprantly、私が記録されている位置をクリックすると(スプライトが移動された位置)、カメラに直接になります。画像
実際見直しで、これは完全に正しい動作しません。キャラクターはスクリーン上の特定の場所に移動します。私が触れた場所ではありません。 – Niana
あなたの質問** "私のスプライトは明らかに広大な未知の世界に投げ込まれています" **これは、ワールド座標にピクセル座標を割り当てるためです。これは 'fingerPos = Input.mousePosition'です。あなたは私の答えのように世界座標に変換する必要があります。それがあなたのコードの問題です。 **これは完全には正しく機能しません**あなたはスプライトが消える問題を解決するはずです – Programmer
私が画面をクリックするたびに、デバッグログに返された座標は正確に同じです。私のコード編集を見てください – Niana