angle | 刚体对象的新旋转角度。 |
将刚体旋转到 /angle/(以度为单位)。
通过计算在下一次物理更新期间将刚体旋转到指定 angle
所需的适当角速度,将刚体旋转到该角度。在移动过程中,角阻力不会影响刚体。这使得对象能够快速从现有角度移动到指定的 /angle/。
因为此功能允许刚体快速旋转到指定的 /angle/,所以附加到刚体的任何碰撞体都将按预期作出反应,也就是说,它们将产生碰撞和/或触发。这也意味着如果碰撞体产生碰撞,则将影响到刚体的运动,并可能阻止刚体在下一次物理更新期间到达指定的 /angle/。如果是运动刚体,则任何碰撞都不影响刚体本身,只会影响任何其他动态碰撞体。
Rigidbody2D 组件对其旋转速度有固定限制,因此在短时间内尝试旋转较大的角度会导致刚体无法在下一次物理更新期间到达指定 /angle/。建议仅将此函数用于角度相对较小的旋转运动。
请务必注意,实际的旋转更改只在下一次物理更新期间进行,因此重复调用该方法而不等待下一次物理更新将导致使用最后一次调用。因此,建议在 FixedUpdate 回调期间调用该函数。
// MoveRotation // The sprite is set a rotation speed.
using UnityEngine; using System.Collections;
public class Example : MonoBehaviour { public Texture2D tex;
private Rigidbody2D rb2D; private Sprite mySprite; private SpriteRenderer sr; private float revSpeed = 50.0f;
void Awake() { sr = gameObject.AddComponent<SpriteRenderer>(); rb2D = gameObject.AddComponent<Rigidbody2D>(); }
void Start() { mySprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f); transform.localScale = new Vector3(3.0f, 3.0f, 3.0f); rb2D.gravityScale = 0.0f; sr.sprite = mySprite; }
void FixedUpdate() { rb2D.MoveRotation(rb2D.rotation + revSpeed * Time.fixedDeltaTime); } }
rotation | 用于仅提取 z 轴旋转的完整 3D 旋转。 |
MoveRotation 的重载,允许以参数的形式进行完整 3D 旋转。
z 轴旋转提取自给定的 Quaternion /rotation/,用作要将 Rigidbody2D 移动到的目标角度。重要的是了解不使用完整 3D 旋转,因为 Rigidbody2D 只有一个围绕 z 轴的旋转自由度。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.