版本: Unity 6 (6000.0)
语言英语
  • C#

Rigidbody.inertiaTensor

建议修改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

切换到手册
public Vector3 inertiaTensor;

描述

此刚体的惯性张量,定义为位于刚体质心并由Rigidbody.inertiaTensorRotation旋转的参考系中的对角矩阵。

惯性张量是质量的旋转模拟:特定轴上的惯性分量越大,围绕该轴获得相同角加速度所需的力矩就越大。

零不是有效的惯性张量分量。因此,物理系统将零解释为无穷大值。例如,具有 (0, 1, 1) 惯性张量的刚体无法绕 X 轴旋转。

请注意,Rigidbody 的旋转约束RigidbodyConstraints实际上是通过将关于锁定自由度的惯性张量分量设置为零来实现的。

如果您没有从脚本设置惯性张量,则会根据附加到 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; } }