Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

Rigidbody2D.MoveRotation

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public function MoveRotation(angle: float): void;
public void MoveRotation(float angle);

Параметры

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

Описание

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

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

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

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

Важно понимать, что фактическое изменение физики будет только на протяжении следующего физического обновления, поэтому вызов этого метода напрямую, без ожидания следующего обновления приведет к тому что будет использован последний вызов. Поэтому рекомендуется делать вызов в функции 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); } }