web-dev-qa-db-ja.com

団結してマウスの位置を取得する

オブジェクトをマウスの位置に移動しようとしています。しかし、300のような大きなx値が得られますが、その場所では事前に配置されたオブジェクトのx位置は-4です。

rigidBody.velocity = new Vector3(Input.mousePosition.x, EndPointY, 0)*4;

では、現在のマウス位置を取得するにはどうすればよいですか?

ありがとうございました..

5
Kim

Input.mousePosition は、画面上のマウスの位置(ピクセル)を提供します。 Camera.ScreenToWorldPoint() を使用して、これらのピクセルをワールド単位に変換する必要があります。

このリンク に従ってマウスで3Dオブジェクトをドラッグする方法を学ぶか、このコードをコピーしてオブジェクトを現在の位置からマウスの位置に移動することができます。

 //the object to move
public Transform objectToMove;

 void Update()
 {
     Vector3 mouse = Input.mousePosition;
     Ray castPoint = Camera.main.ScreenPointToRay(mouse);
     RaycastHit hit;
     if (Physics.Raycast(castPoint, out hit, Mathf.Infinity))
     {
         objectToMove.transform.position = hit.point;
     }
 }
7
Gazzx

それが現在のマウスの位置です。問題は、オブジェクトがワールド座標にあり、マウスが画面座標を使用していることです。

Camera.ScreenToWorldPoint() を使用してマウスの位置を変換する必要があります。

4
Ryanas