可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm trying to move a object to the mouse position. But it's giving me large x value like 300 but at that place the pre placed object's x position is -4.
rigidBody.velocity = new Vector3(Input.mousePosition.x, EndPointY, 0)*4;
So how can I get the current mouse position?
Thank you..
回答1:
That is the current mouse position. The issue is that your objects are in world coordinates and the mouse is using screen coordinates.
You need to convert the mouse position using Camera.ScreenToWorldPoint().
回答2:
Input.mousePosition will give you the position of the mouse on screen (pixels). You need to convert those pixels to the world units using Camera.ScreenToWorldPoint().
You can follow this link to learn how to drag a 3d object with the mouse or you can copy this code to move an object from the current position to the mouse position.
//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; } }