Get Vector3 of Position Clicked on Plane

I want to click on a 3D plane with my mouse. When I do this, I want it to return a Vector3 of where I clicked. When I use:

Vector3 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);

then, it gives me the Vector3 of the center of the plane. Not what I want. I want it to be at the position I click.

I am trying to create a Ray (Camera.ScreenPointToRay) and work with Physics.Raycast, but that just returns a bool, and not where it actually hits.

I have spent the last 3 hours reading everyone else’s questions…what am I missing here?

If you look at the reference page for Physics.Raycast(), you will see there are many forms of this function…ones that have different signatures (i.e. different parameters). You need one that take a RaycastHit as a parameter. Here is an example of a raycast from the mouse that reports the position of the hit:

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    void Update() {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit)) {
            Debug.Log("The ray hit at: "+hit.point);