我有一个统一的游戏对象,我想用一些力量推动向量。目前我试图添加一些逼真的旋转力,因此使用AddForceAtPosition使用刚体质心的偏移量。然而,当我运行游戏时,除了旋转之外,对象开始略微移动。没有其他力量存在且没有阻力。
rb.AddForceAtPosition(transform.TransformDirection(Vector3.up * 5), transform.position + transform.TransformDirection(mainThrustPt));
答案 0 :(得分:5)
Rigidbody.AddForceAtPosition
功能在对象上应用扭矩和强制。这意味着对象将同时旋转和移动。
如果您只想应用不会移动物体的旋转力,请使用Rigidbody.AddTorque
或Rigidbody.AddRelativeTorque
,它只会对物体施加旋转力。
如果你不希望它移动,你也可以释放刚体x,y,z位置,但是当完成时,对象的移动行为会很奇怪。
然而,当我运行游戏时,对象开始稍微移动 旋转。
如果物体移动时没有向其添加力或不使用AddForceAtPosition
,则重力会拉动它。禁用"使用Gravity"正如我在上图中所做的那样。
答案 1 :(得分:1)
如果需要轮换,请使用AddTorque。
答案 2 :(得分:0)
如果你用绳子捆住球的边缘,你会发现它会旋转以及旋转。在施加力之前尝试使用它:
rigidbody.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ;