当前位置: 首页 > ds >正文

Unity:AddTorque()(增加旋转力矩)

目录

什么是 AddTorque()?

第一性原理出发:什么是 Torque(力矩)?

Torque 公式 

Unity 中 AddTorque 的工作原理

参数属性

🔍 Linear Drag(线性阻力)

线性阻力模拟的现实情况:

 🔄 Angular Drag(角阻力)

⬇️  Gravity Scale(重力缩放因子) 

✅ mass(质量)

✅ inertia(转动惯量,Unity 内部计算)

📘 专业术语解释

Rigidbody2D 中的相关属性


什么是 AddTorque()

AddTorque() 是 Unity 中用于对物体施加旋转力矩(Torque)的方法,从而让刚体围绕其中心轴开始旋转。

它是 Rigidbody / Rigidbody2D 的方法之一,作用是让刚体旋转起来,而不是平移。

第一性原理出发:什么是 Torque(力矩)?

在物理学中:

 Torque(力矩,中文也叫“转矩”)是使物体产生“旋转加速度”的量。

类比:开门的感觉

想象你要打开一扇门。

  • 你把手放在门边缘用力一推,门很容易旋转打开;

  • 但你把手放在靠近门轴的地方推,门很难转动。

这说明:

相同的力,距离门轴越远,产生的“转动效果”越强。 

 这个转动效果就叫Torque(力矩)。

Torque 公式 

我们从经典物理公式来看: 

τ = r × F 

其中:

  • τ(tau)是力矩(Torque)

  • r 是从转轴到施力点的距离(位置向量)

  • F 是施加的力(向量)

  • × 是叉乘,表示方向性(右手法则)

这意味着:
一个力要想让物体旋转,它不仅要有大小,还要有正确的方向和施力点位置。

Unity 中 AddTorque 的工作原理

在 Unity 中调用:

Rigidbody2D rb;
rb.AddTorque(10f);

 就相当于说:

给这个刚体一个大小为 10 的顺时针力矩,让它旋转。 

正负号表示旋转方向:

数值方向(以Z轴为旋转轴)
正数(+10f逆时针旋转(Counterclockwise)
负数(-10f顺时针旋转(Clockwise)

参数属性

属性名中文名控制什么类比
mass质量物体对加速度的抵抗重物更难推动
gravityScale重力缩放控制重力影响力的大小让物体掉落更快或更慢
linearDrag线性阻力控制物体移动减速的快慢像空气阻力或地面摩擦
angularDrag角阻力控制物体旋转减速的快慢像陀螺的摩擦减速
inertia (只读)转动惯量控制旋转的“惯性”更大更重的轮子转起来慢停下来也慢

🔍 Linear Drag(线性阻力)

Linear Drag 是物体移动时遇到的空气阻力/摩擦力,用来减慢它的平移运动。 

它模拟的是现实生活中的“空气阻力”或“地面摩擦”,作用方向总是与当前速度方向相反。 

线性阻力模拟的现实情况:

情况Linear Drag 值
真空环境,完全无阻力0
空气中滑动0.1 ~ 2
水中滑动5 ~ 20
沙地或粘性液体20+

 🔄 Angular Drag(角阻力)

Angular Drag 是物体旋转时遇到的“空气摩擦”或“轴摩擦”,减慢它的旋转速度。 

如果你用 AddTorque() 让一个轮子旋转,但不想它永远不停,那就靠这个。 

类比现实:

  • 零角阻力 = 真空中的陀螺,永远旋转

  • 高角阻力 = 在沙子里转轮子,几乎不动几圈就停

⬇️  Gravity Scale(重力缩放因子) 

Gravity Scale 控制物体受 Unity 世界重力影响的大小。 

默认 Unity 的世界重力是: 

Physics2D.gravity = new Vector2(0, -9.81f);

所以:

  • 如果 gravityScale = 1,物体受到的重力加速度是 -9.81

  • 如果 gravityScale = 2,它就受到 -19.62 的加速度

  • 如果是 0,它就不受重力影响(比如幽灵、漂浮物)

类型gravityScale 建议值
普通角色1.0
飘浮生物/飞行物0.0
重型机械2.0 ~ 4.0
反重力物体-1.0(会上升)

✅ mass(质量)

  • 控制物体受力后产生的加速度(F = m * a)

  • 决定撞击时的惯性(大质量 = 撞人更猛)

✅ inertia(转动惯量,Unity 内部计算)

  • 控制 Torque 转得快不快

  • 大惯量 = 更难旋转/更难停

你不能手动设置 inertia,但它由物体的 Collider 形状 + mass 决定。


📘 专业术语解释

术语中文含义
Torque力矩 / 扭矩一种“使物体旋转”的力,与施力点和轴心的距离有关
Rigidbody / Rigidbody2D刚体Unity 中可以参与物理模拟的对象
Angular Velocity角速度单位时间内旋转的角度速度,单位是弧度/秒 或 度/秒
AddTorque(float torque)添加力矩施加一个数值大小的旋转力,正负号决定顺/逆时针方向

Rigidbody2D 中的相关属性

如果你用了 AddTorque(),以下这些属性会受到影响:

属性中文名意义
angularVelocity角速度当前旋转速度(°/s)
inertia转动惯量物体对旋转的抵抗能力
mass质量会影响力矩产生的效果(和惯量一起决定旋转加速度)
http://www.xdnf.cn/news/4172.html

相关文章:

  • uniapp 云开发全集 云数据库
  • JavaScript 笔记 --- part7 --- JS进阶 (part2)
  • 【信息系统项目管理师-论文真题】2008上半年论文详解(包括解题思路和写作要点)
  • Python生活手册-NumPy数组创建:从快递分拣到智能家居的数据容器
  • 互联网大厂Java求职面试:AI大模型与云原生架构设计深度解析
  • 【学习心得】Xtuner模型qlora微调时错误记录
  • 【嘉立创EDA】FPCB(Flexible-PCB)柔性软板设计如何增加补强层
  • 反常积分(广义积分)
  • Redis总结(六)redis持久化
  • C++ 适配器模式详解
  • Java中使用Lock简化同步机制
  • 安装SDL和FFmpeg
  • 强化学习ppo算法在大语言模型上跑通
  • [ 设计模式 ] | 单例模式
  • Android学习总结之GetX库篇(场景运用)
  • 智能合约在去中心化金融(DeFi)中的核心地位与挑战
  • 机器学习中常见搜索算法
  • 代码随想录算法训练营第三十二天
  • Scrapy爬虫实战:如何用Rules实现高效数据采集
  • STM32教程:DMA运用及代码(基于STM32F103C8T6最小系统板标准库开发)*详细教程*
  • Vue3响应式原理那些事
  • PyTorch 张量与自动微分操作
  • 研0大模型学习(第12天)
  • 《深入理解 Java 虚拟机》笔记
  • 三、【LLaMA-Factory实战】模型微调进阶:从LoRA到MoE的技术突破与工程实践
  • 一文读懂Python之pandas模块
  • Vite简单介绍
  • 亚马逊卖家复刻案例:用社群分层策略实现海外用户月均消费3.2次
  • 普通消元求解线性基并求解最大异或和
  • 【论文笔记】SOTR: Segmenting Objects with Transformers