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

时间:2015-08-03 05:12:20

标签: unity3d game-physics unityscript rigid-bodies

Unity 5.0.0p2中的以下代码似乎有误:

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

所以我尝试了以下代码:

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

但它仍然没有用。几条错误消息如下所示。

  • BCE0043: Unexpected token: ).
  • BCE0044: expecting ), found '.'.
  • UCE0001: ';' expected. Insert a semicolon at the end.

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:4)

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

然而,这并不能完全解决您的问题。您只能通过设置velocity值来更新x。您将必须分配完整的向量。因此,将您当前的velocity复制到自己的Vector3,更新x并替换整个velocity向量。

答案 1 :(得分:1)

错误消息可能与您发布的行没有关系似乎没问题,尽管我们需要整个脚本来说明。

但是,对于刚体的速度,请按以下方式分配:

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

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