【问题标题】:Find vector3 in a direction but with a given magnitude在一个方向上找到向量3,但具有给定的大小
【发布时间】:2023-03-12 21:10:01
【问题描述】:

我通过两个vector3的减法得到方向。在这种情况下,我的游戏对象和我的鼠标位置。

Vector3 dir = gameObject.transform.position -
orthoCamera.ScreenToWorldPoint(Input.mousePosition)

我现在想将一个对象放置在同一个方向,但距离我原来的游戏对象的距离有限。那就是我需要一个方向相同但幅度为 0.5 的向量。我该怎么做?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:
    var posn = gameObject.transform.position - (dir.normalized * desiredDistance);
    

    希望这听起来不会太居高临下,但是您可以通过将向量乘以标量来更改向量的大小。

    【讨论】:

    • 这里所需的距离是多少 - 幅度(浮动)?还是 Vector3 ?
    • 为什么要减去方向?是的,Sameer 这将是您的 0.5 值
    • 获取从我到我的目标的方向是(目标 - 我)这给了我一个从我到我的目标的向量。将对象放置在该方向半个单位将是:me + (dir * desiredDistance),因为减去它会将其置于相反的方向。
    • 我使用了-,因为它给出了从物体到观察者的距离。如果您特别希望位移源自观察者,那么起点也必须改变,var posn = orthoCamera.ScreenToWorldPoint(Input.mousePosition) + (dir.normalized *desiredDistance);
    • 这里的关键点是实际问题的答案是向量可以乘以标量(float、double、int、long)来“调整”它们的大小
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多