对象跟随鼠标指针统一和C#

本文关键字:跟随 鼠标指针 对象 | 更新日期: 2023-09-27 18:20:01

我正忙于处理使用RTS风格相机的东西,我希望一个对象跟随鼠标光标,但始终保持在相同的Y轴上。相机位置设置为0、15、-15

我已经玩了一段时间了,这是我能想到的最好的:

Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
Vector3 point = ray.GetPoint(5);
transform.position = point;
print (point);

任何帮助都将不胜感激。

对象跟随鼠标指针统一和C#

您正处于正确的轨道上,但您需要使用该光线将光线投射到某个物体上以获得世界位置。

由于这是一个rts,我假设地形是水平的,在这种情况下,很容易将飞机放置在所需的高度。如果不是这样的话,我建议遵循@the Ryan的建议,并存储之前的y值。

在任何一种情况下,你都需要将你射线投射的东西与其他东西放在一个单独的层中,这样你就不会将东西移动到其他单位的上

Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, maxDistance, layerMask))
{
    float oldY = transform.position.y;
    transform.position.Set(hit.point.x, oldY, hit.point.z);
}