在 unity 5.0.0p2 中将物理添加到刚体的代码是什么?

What is the code to add physics to the rigidbody in unity 5.0.0p2?

以下代码在 Unity 5.0.0p2 中似乎是错误的:

rigidbody2D.velocity.x = Input.GetAxis("Horizontal") * 10;

所以我尝试了以下代码:

GetComponent<Rigidbody2D>().velocity.x = Input.GetAxis("Horizontal") * 10;

但是还是不行。出现如下几条错误消息。

我的代码有什么问题?

您的第一行将不再有效,因为 rigidbody2D 不再是 MonoBehaviour 的 属性。这已被删除,因此您将不得不使用 GetComponent<Rigidbody2D>() 代替。

但这并不能完全解决您的问题。您不能像现在这样更新 velocity,只能设置 x 值。您将必须分配完整的向量。因此,将您当前的 velocity 复制到它自己的 Vector3,更新 x 并替换整个 velocity 向量。

错误消息可能与您发布的行无关,因为这似乎没问题,但我们需要整个脚本来说明。

但是,对于刚体的速度,可以这样赋值:

GetComponent<Rigidbody2D>().velocity = new Vector2(
    Input.GetAxis("Horizontal") * 10,
    GetComponent<Rigidbody2D>().velocity.y
);

这仅设置速度的 x 轴并保持 y 轴。