获得鼠标位置统一

问题描述:

我想将对象移动到鼠标位置。但是它给了我很大的x值,比如300,但是在那个位置,预先放置的对象的x位置是-4。获得鼠标位置统一

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

那么我怎样才能获得当前的鼠标位置呢?

谢谢..

这是当前的鼠标位置。问题在于你的对象处于世界坐标,鼠标正在使用屏幕坐标。

您需要使用Camera.ScreenToWorldPoint()转换鼠标位置。

Input.mousePosition会给你鼠标在屏幕上的位置(像素)。您需要使用Camera.ScreenToWorldPoint()将这些像素转换为世界单位。

您可以按照this link了解如何用鼠标拖动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; 
    } 
}