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

时间:2014-08-30 11:59:28

标签: c# unity3d

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

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

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

你是在正确的轨道上,但你需要使用该光线投射到某些东西上以获得世界位置。

由于它的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);
}