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.
我的代码出了什么问题?
答案 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
轴。