首页 文章

在Unity中通过脚本更改铰链的轴

提问于
浏览
5

我试图用Unity游戏引擎中的 HingeJoint (或可配置的关节)来模拟汽车转弯 .

我有4个轮子连接在主体上,接头效果很好 . 现在我需要用控制器脚本更改关节轴(相对于主体)以使轮子转动 . 如果我在检查器中更改轴的Z值(相对于主体旋转轴),它会执行我需要的操作,但是当我尝试在脚本中更改Z轴时,事情变得疯狂 . 在你运行游戏之前,我觉得轴是相对于父体的,但是当你运行它时,轴可能是绝对的或者某种东西 .

我试图找到答案很长一段时间,但我找不到任何与轴相关的东西 .

我发现的只有 TargetRotation (在可配置的关节上),实际上并不是我想要的东西,因为我相信你需要在另一个轴上设置一些限制才能使它工作,从而使已经有弹性的关节更加摆动 . 显然,我需要尽可能严格的结果 . 如果你对 TargetRotation 知道如何做到这一点仍然有用,请告诉我,因为我甚至还不知道它是如何工作的 .

我相信问题很简单,但是如果你觉得问题不够明确,请告诉我,所以我会添加一些图片以便更好地解释 .

编辑:嗯,建议添加更多信息,所以我们去:

这是我的所有
enter image description here

正如你所看到的那个带有4个气缸的简单盒子,盒子上有可配置的接头 . 所有元素都在同一根级别并且附加了刚体 .

在红色圆圈中,您可以通过在检查员中更改轴Z值(从-1到1)看到不同的轴旋转,这正是我需要通过脚本来操纵车辆 .

不幸的是,当我在脚本中添加轴Z控制器时:

float steering = Input.GetAxis("Horizontal");
        configurableJoint.axis = new Vector3(configurableJoint.axis.x, configurableJoint.axis.y, steering);

它像这样打破:
enter image description here

所以我想知道如何实现这样的功能,以及能够解释我关节轴如何工作的人会很好 .

提前感谢您的努力

1 回答

  • 0

    我猜你需要将轮子固定在汽车车身上,然后在你的剧本中相对于车身旋转车轮 .

    如果你能提供一个简单的Unity项目,可以下载,试验和调整,以便复制问题并修复它,这将有所帮助 . 如果您想发送问题的简单演示,我很乐意帮忙,以便我可以尝试修复它 .

相关问题