Getting an object to sit along a raycast

I am using a Kinect and trying to get an object to sit at a certain distance along a raycast.

        _x = _hit.point.x;
		_y =  _hit.point.y;
		_z = rhandpos.z;
		//_z = _hit.collider.transform.position.z;
		//Debug.Log("cross z pos" + _z);
		cross.transform.position = Vector3.Lerp(cross.transform.position,new Vector3(_x,_y,_z + -10.0f),Time.smoothDeltaTime);
		
what I have  is the crosshair at the raycast hit.y and .x but it dosent give an accurate representation of the ray cast any advice would be great

If you generated the raycast with a ray, use this:

cross.transform.position = ray.GetPoint(hit.distance - offset);

where ray is the ray used in Raycast, and offset is the distance from the hit point.

If you generated the raycast with a starting point and a direction vector, use this:

cross.transform.position = hit.point - dir * offset;

where dir is the unit vector that defined the raycast direction, and offset the distance from the hit point.