void Update () {
Vector3 pos = transform.position;
Vector3 velocity = new Vector3 ( 0 ,-maxspeed * Time.deltaTime ,0);
pos += transform.rotation * velocity;
transform.position = pos;
gameObject.transform.rotation = new Quaternion (0, 0, 1, 0);
}
这是我用于向前移动陨石(从上到下)的脚本,但我希望我的陨石绕其中心旋转。我添加了类似的一行:
gameObject.transform.rotation = new Quaternion (0, 0, 1, 0);
但它无法正常工作。它正在以弧线旋转陨石,而不是围绕自己的中心旋转。
我在互联网上搜索过有关围绕其中心旋转物体的信息,但我没有得到任何正确的指导。
用途:
meteoritesRotationSpeed = 10.0f;
gameObject.transform.Rotate (Vector3.forward * meteoritesRotationSpeed * Time.deltaTime);
而不是这个:
gameObject.transform.rotation = new Quaternion (0, 0, 1, 0);
首先,要使用
Quaternion
旋转,您必须将它们相乘,因此 transform.rotation *= myQuaternion;
但要简单地向前旋转陨石,您必须在 Vector3.right
轴上旋转它,另一个答案很接近,但它会正如您所要求的,实际上在错误的轴上旋转并且不会向前倾斜。
float speed = 5f;
meteorite.transform.Rotate(Vector3.right * speed * Time.deltaTime);