angle | @param angle El nuevo ángulo de rotación para el objeto Rigidbody. |
Rota el rigidbody a un angle
.
Rota el rigidbody a un ángulo angle
especificado, calculando la velocidad angular apropiada requerida para rotar el rigidbody a ese ángulo durante la próxima actualización del simulador de física. Durante el movimiento, el rozamiento angular no afectará al cuerpo. Esto causa que el objeto se mueva rápidamente desde el ángulo existente al angle
especificado.
Debido a que esta característica permite que un rigidbody se mueva rápidamente al angle
especificado, cualquier collider adjunto al rigidbody reaccionará como se espera; es decir, producirá colisiones y/o disparará triggers. Esto también significa que si los colliders producen una colisión, entonces esto afectará al movimiento del rigidbody y potencialmente lo detendrá, no permitiéndole alcanzar el angle
especificado durante la próxima actualización de la física. Si el rigidbody es cinemático entonces ninguna colisión afectará al rigidbody mismo, y sólo afectará a otros colliders dinámicos.
Los rigidbodies 2D tienen un límite fijado sobre cuán rápido pueden rotar; por tanto, intentar rotar ángulos grandes en escalas de tiempo cortas puede resultar en que el rigidbody no alcance el angle
especificado durante la próxima actualización de la física. Es recomendado que se utilice esto para únicamente movimientos rotacionales pequeños.
Es importante entender que un cambio en la rotación real solo ocurrirá durante la próxima actualización de la física; por tanto, estar llamando a este método repetidamente sin esperar a la próxima actualización resultará en que solo sea usada la última actualización. Por esta razón, es recomendado que sea invocado durante la llamada al método FixedUpdate.
var speed: float; var rb2D: Rigidbody2D;
function Start() { rb2D = GetComponent.<Rigidbody2D>(); }
function FixedUpdate () { rb2D.MoveRotation(rb2D.rotation + speed * Time.fixedDeltaTime); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public float speed; public Rigidbody2D rb2D; void Start() { rb2D = GetComponent<Rigidbody2D>(); } void FixedUpdate() { rb2D.MoveRotation(rb2D.rotation + speed * Time.fixedDeltaTime); } }