我正在 unity 开发游戏并在使用加速度计时遇到问题

问题描述

我编写了这段代码,用于使用加速度计在 3d 盒子上添加力,但这在运行时对盒子没有影响。有没有办法使用 AddForce 代替 transform

image

此外,我只想在 x 轴上添加一个力,即水平方向,而不是其他方向。有没有办法做到这一点?

解决方法

您可能需要使用 AddForce() 检查您的刚体质量。力默认适用于牛顿定律,即力 = 质量 x 加速度。您可能想使用可以像以下这样传递的 ForceMode 可选参数:rb.AddForce(tilt,ForceMode.Acceleration)。 Acceleration 向刚体添加连续加速度,忽略其质量。更多信息:https://docs.unity3d.com/ScriptReference/ForceMode.html

或者您可能想要检查 rb.MoveToPosition(Vector3) 计算您移动到指定位置的力。

https://docs.unity3d.com/ScriptReference/Rigidbody.MovePosition.html

有关 AddForce 的默认工作方式的信息,Rigidbody2D 以类似的方式工作,减去第三维。 https://docs.unity3d.com/ScriptReference/Rigidbody2D.AddForce.html

并且要将力限制在 x 轴上,您可能需要查看盒子上的约束,通过轴或旋转进行限制。