Unity 2D中的速度如何在没有刚体的情况下获得物体的速度

Velocity in Unity 2D How to get velocity of object without rigidbody

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

您可以这样测量速度矢量:

Vector3 pos, velocity;

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

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

您可以使用Transform.hasChanged

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