Unity 6.3
0 онлайн 94 гостей 3 в системе
Вход

Rigidbody.inertiaTensor

Declaration

public Vector3 inertiaTensor;

Описание

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

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

Нуль не является действительным компонентом тензора инерции. Поэтому система физики интерпретирует нули как бесконечные значения. Так, например, тело с тензором инерции (0, 1, 1) невозможно вращать вокруг X.

Обратите внимание, что вращающиеся ограничения RigidbodyConstraints Rigidbody на самом деле реализуются путем установки компонентов тензора инерции относительно заблокированных степеней свободы на нуль.

Если вы не устанавливаете тензор инерции из скрипта, он рассчитывается автоматически из всех коллайдеров, присоединенных к Rigidbody. Чтобы вернуть тензор инерции к автоматически вычисляемому значению, вызовите Rigidbody.ResetInertiaTensor.

// Expose tensor of inertia to allow adjustment from
// the inspector.
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Vector3 tensor; public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); rb.inertiaTensor = tensor; } }