在 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;
但是还是不行。出现如下几条错误消息。
BCE0043: Unexpected token: ).
BCE0044: expecting ), found '.'.
UCE0001: ';' expected. Insert a semicolon at the end.
我的代码有什么问题?
您的第一行将不再有效,因为 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
轴。
以下代码在 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.
我的代码有什么问题?
您的第一行将不再有效,因为 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
轴。