You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bullet Physics中锁定刚体的所有轴旋转?

解决角色倾倒问题:锁定全部旋转轴

你的问题出在setAngularFactor()的参数上——当前传入的btVector3(1.0f, 1.0f, 1.0f)是允许刚体在三个轴上自由旋转,这和你想要锁定全部轴的需求完全相反。

Bullet物理引擎中,setAngularFactor()的每个分量控制对应轴的旋转缩放:

  • 设为0.0f表示锁定该轴,禁止旋转
  • 设为1.0f表示允许该轴自由旋转

所以要锁定全部三个轴的旋转,只需要把参数改成全0的向量:

rigidbody->setAngularFactor(btVector3(0.0f, 0.0f, 0.0f));

另外补充两个常见场景的用法:

  • 如果只需要锁定X和Z轴(比如允许角色在Y轴上转向),可以用btVector3(0.0f, 1.0f, 0.0f)
  • 如果想让旋转缩放按比例生效,也可以传入0-1之间的数值,比如btVector3(0.5f, 1.0f, 0.5f)会让X/Z轴旋转速度减半

内容的提问来源于stack exchange,提问作者Ismail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 15:45:54