我试图HingeJoint
在Unity游戏引擎中模拟汽车转向(或可配置的关节).
我有4个轮子连接在主体上,接头效果很好.现在我需要用控制器脚本更改关节轴(相对于主体)以使轮子转动.如果我在检查器中更改轴的Z值(相对于主体旋转轴),它会执行我需要的操作,但是当我尝试在脚本中更改Z轴时,事情变得疯狂.在你运行游戏之前,我觉得轴是相对于父体的,但是当你运行它时,轴可能是绝对的或者某种东西.
我试图找到答案很长一段时间,但我找不到任何与轴相关的东西.
我发现的只有TargetRotation
(在可配置的关节上),实际上并不是我正在寻找的东西,因为我相信你需要在另一个轴上设置一些限制才能使它工作,从而使已经有弹性的关节更加摆动.显然,我需要尽可能严格的结果.如果你知道如何做到这一点,TargetRotation
请告诉我,因为我还不知道它是如何工作的.
我相信问题很简单,但是如果你觉得问题不够明确,请告诉我,所以我会添加一些图片以便更好地解释.
编辑:嗯,建议添加更多信息,所以我们去:
这就是我所拥有的
正如你所看到的那个带有4个气缸的简单盒子,盒子上有可配置的接头.所有元素都在同一根级别并且附加了刚体.
在红色圆圈中,您可以通过在检查员中更改轴Z值(从-1到1)看到不同的轴旋转,这正是我需要通过脚本来操纵车辆.
不幸的是,当我在脚本中添加轴Z控制器时:
float steering = Input.GetAxis("Horizontal"); configurableJoint.axis = new Vector3(configurableJoint.axis.x, configurableJoint.axis.y, steering);
它像这样打破:
所以我想知道如何实现这样的功能,以及能够解释我关节轴如何工作的人会很好.
提前感谢您的努力