Basically if you cast a ray you normally have a starting point and a direction vector.
if you have the distance you hit something just add the normalized direction vector multiplied by the distance to your starting point. That's it. But the Ray class in Unity have a special function that will do that for you: Ray.GetPoint()

{
Ray myRay = new Ray(startpoint, direction); // or use any other ray
float dist;
if (myPlane.Raycast(myRay,out dist))
{
Vector3 hitPoint = myRay.GetPoint(dist);
}