finding mouse click coordinates
hi, I'm trying to create an object where ever I click on the screen. I have a camera facing downwards (with global y axis going up through the camera) and I want to be able to add an object anywhere on x, z (later I want to add a control for the y axis). I've tried two different approaches
if (Input.GetMouseButtonDown(0)) {
#region mouse position
Vector3 pz = Camera.main.ScreenToWorldPoint(Input.mousePosition);
pz.z = 0;
Debug.Log(pz);
#endregion
Instantiate(blah, (pz), Quaternion.identity);
and this
if (Input.GetMouseButtonDown(0)) {
#region mouse position
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
//Debug.Log(ray);
#endregion
//Instantiate(blah, (pz), Quaternion.identity);
}
on the first I'm getting the closest but I keep getting the cameras coordinate on the second I don't know how to make the raycast hit an entire plane. how can I get- in this case- the xz coordinates of where I am clicking at y = 0? and is ScreenPointToRay using and returning in its local coordinates?
Answer by goutham12 · Jan 18, 2018 at 11:50 AM
public GameObject sfo; Vector3 mousePos_X() { var mousePos_ = Input.mousePosition; mousePos_.z = 10; Vector3 pos = Camera.main.ScreenToWorldPoint(mousePos_); return pos; }
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(sfo, mousePos_X(), Quaternion.identity);
}
}
Your answer
Follow this Question
Related Questions
ScreenToWorldPoint offset affecting ScreenPointToRay ? 1 Answer
ScreenToWorldPoint for WebGL build and Editor return different values 0 Answers
Getting an object's y coordinate 2 Answers
gameobject.transform.position not working correctly 3 Answers
Getting position of a coordinate on the surface of a sphere 0 Answers