Since this is still the first answer I found on Google in 2021, I decided to add a shorter solution, using Unity’s Vector3.Lerp() to interpolate between two positions.
In my current project, my enemies need to judge the distance to 2 different vector position on the players. in order to determine if they are facing them or not. But I want them to “target” and run to a point between those two vectors. Here is how I did that:
[Range(0,1)]
public float myFloatVariable; // can precisely place the spot to "target" in editor.
public Vector3 drawPointOnCurrentTarget;
Vector3 a = new Vector3(GameObjectRepresentingFace.x, GameObjectRepresentingFace.y);
Vector3 b = new Vector3(GameObjectRepresentingBody.x, GameObjectRepresentingBody.y);
drawPointOnCurrentTarget = a + ((b - a).normalized * myFloatVariable);
float distanceToTarget = Vector3.Distance(drawPointOnCurrentTarget, transform.position);
Debug.DrawLine(drawPointOnCurrentTarget, transform.position, Color.red);
Hope this helps someone stumbling onto this question.