Version: 2017.3
public void MoveRotation (float angle);

Parameters

angle @param angle Новый угол для вращения твердого тела.

Description

Вращение твердого дела на угол.

Вращение твердого тела на точно определенный угол рассчитывается через соответствующую угловую скорость, требуемую для поворота твердого тела на этот угол на протяжении следующего обновления физики. На протяжении движения угловое торможение не действует на тело. Поэтому тело может быстро повернутся на соответствующий угол.

Т.к. эта особенности позволяет твердому телу быстро повернутся в указанный угол, все коллайдеры, прикрепленные к твердому телу будут реагировать как обычно, т.е. будут обеспечивать коллизии, будут оказывать влияние на движение твердого тела и вероятно на его остановку по достижению указанного угла на протяжении следующего обновления физики. Если твердое тело кинематическое, тогда все коллизии не будут оказывать воздействие на само твердое тело, а только на другие динамические коллайдеры.

2D твердые тела имеют фиксированное ограничение на скорость поворота, поэтому попытки поворота на большие углы за короткие временные промежутки могут привести к тому, что твердое тело не достигнет указанного угла за следующее физическое обновление. Рекомендуется использовать только для поворота на относительно небольшие расстояния.

Важно понимать, что фактическое изменение физики будет только на протяжении следующего физического обновления, поэтому вызов этого метода напрямую, без ожидания следующего обновления приведет к тому что будет использован последний вызов. Поэтому рекомендуется делать вызов в функции FixedUpdate.

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); } }