【问题标题】:Velocity in Unity 2D How to get velocity of object without rigidbodyUnity 2D中的速度如何在没有刚体的情况下获得物体的速度
【发布时间】:2018-09-30 19:31:39
【问题描述】:

通过使用方法transform.translate(Vector3.left * 5f * Time.Deltatime; 这是否会改变具有刚体的游戏对象的速度,因为在我的情况下它不起作用。有没有办法我可以移动对象以便速度改变。如果没有,有什么办法可以在没有附加刚体的情况下测量物体的速度。谢谢。

【问题讨论】:

  • translate 让对象“跳”到该位置,但 RigidBody 组件保持其当前速度。但是,您可以获得速度,例如here 然后将其应用于 RigidBody.velocity

标签: c# unity3d velocity gameobject rigid-bodies


【解决方案1】:

你可以像这样测量速度矢量:

Vector3 pos, velocity;

void Awake()
{
    pos = transform.position;
}

void Update()
{
    velocity = (transform.position - pos) / Time.deltaTime;
    pos = transform.position;
}

【讨论】:

  • 只要加上这实际上给了你一个速度向量。如果你想要真正的速度,你可以使用velocity.magnitude
【解决方案2】:

您可以使用Transform.hasChanged

if (!this.transform.hasChanged)
{
    print("Player is not moving");
}
transform.hasChanged = false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多