【问题标题】:Object to follow mouse pointer unity and C#对象跟随鼠标指针统一和C#
【发布时间】:2015-07-13 06:39:37
【问题描述】:

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

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

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

我们将不胜感激。

【问题讨论】:

  • 你没有解释代码是否有效,你的代码有什么问题?
  • 从我猜你问的是,你需要将 point.y 设置为之前 y 位置的对象,然后再将其应用于 transform.position。例如:point.y = transform.postion.y;

标签: c# unity3d


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2012-01-05
    • 2016-07-02
    • 1970-01-01
    相关资源
    最近更新 更多