Unity:如何使用 Vector3.MoveTowards() 将鼠标置于 3D 播放器的中心?

Unity: How Do I Center A Mouse To A 3D Player Using Vector3.MoveTowards()?

我目前正在使用鼠标输入在 3d 世界中移动玩家(球体)。我正在使用光线投射并使用 hit.point 坐标来执行此操作。这是我希望我的游戏运行的方式,但它是一款 3d 游戏,所以每当我使用鼠标坐标移动玩家时,它都不会正确对齐。这是因为玩家是3d的,鼠标坐标是2d的。

这是我的代码:

public float speed;
public GameObject player;

private Ray ray;
private RaycastHit hit;
private Vector3 mousePos;

void Start ()
{

}

void FixedUpdate ()
{
    ray = Camera.main.ScreenPointToRay(Input.mousePosition);

    if(Physics.Raycast(ray, out hit))
    {
        mousePos = new Vector3(hit.point.x, /*Insert Code*/, hit.point.z);

        if(mousePos != player.transform.position)
        {
            player.transform.position = Vector3.MoveTowards(player.transform.position, mousePos, speed * Time.deltaTime); 
        }
    }
}

我的问题是:

如果我的播放器位于离地面 1.3f 的位置,我该如何操作 Vector3.MoveTowards 以便鼠标在播放器中居中而不影响播放器的高度 (1.3f)?

我尝试使用 player.transform.position.y,但它直接将鼠标放在播放器下方(x 和 z 值有效,但 y 值无效)。

我也试过 hit.point.y,但它给我的值大于玩家身高 (1.3f)。

这可能不是解决我的问题的最佳方法,但它暂时解决了这个问题。我制作了一个 y 值为 1.3f 的平面并将其穿过玩家对象。然后,我使该对象不可见。现在,光线投射将击中该物体而不是地面。