Unity3d 通过统一脚本更改铰链关节的轴

Unity3d 通过统一脚本更改铰链关节的轴,unity3d,Unity3d,我试图在Unity游戏引擎中使用铰链关节(或可配置关节)模拟汽车转弯 我有4个轮子连接到主体和关节什么工作得很好。现在,我需要使用控制器脚本更改关节轴(相对于主体),以使车轮转动。如果我在inspector中更改轴的Z值(相对于主体旋转轴),它会满足我的需要,但是当我尝试在脚本中更改Z轴时,事情会变得疯狂。在我看来,在你运行游戏之前,轴是相对于父体的,但是当你运行它时,轴可能是绝对的或者其他的 我试图找到答案已经有一段时间了,但我找不到任何与轴心有关的东西 我发现的唯一一件事是关于TargetR

我试图在Unity游戏引擎中使用
铰链关节
(或可配置关节)模拟汽车转弯

我有4个轮子连接到主体和关节什么工作得很好。现在,我需要使用控制器脚本更改关节轴(相对于主体),以使车轮转动。如果我在inspector中更改轴的Z值(相对于主体旋转轴),它会满足我的需要,但是当我尝试在脚本中更改Z轴时,事情会变得疯狂。在我看来,在你运行游戏之前,轴是相对于父体的,但是当你运行它时,轴可能是绝对的或者其他的

我试图找到答案已经有一段时间了,但我找不到任何与轴心有关的东西

我发现的唯一一件事是关于
TargetRotation
(在可配置的关节上),这实际上不是我要寻找的,因为我认为需要在另一个轴上设置一些限制,以使其工作,从而使已经有弹性的关节摆动得更厉害。显然,我需要尽可能严格地执行结果。 不过,如果您对如何使用
TargetRotation
有一些想法,请告诉我,因为我甚至还无法识别它实际上是如何工作的

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

编辑: 好吧,建议添加更多信息,我们开始:

这是我的

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

在红色圆圈中,你可以看到通过在inspector中更改轴Z值(从-1到1)而产生的不同轴旋转,这正是我需要通过脚本来控制车辆的操作

不幸的是,当我在脚本中添加axis Z控制器时,如下所示:

        float steering = Input.GetAxis("Horizontal");
        configurableJoint.axis = new Vector3(configurableJoint.axis.x, configurableJoint.axis.y, steering);
它像这样断裂:

所以我想要的是一些如何实现这种功能的想法,以及有人能向我解释关节轴是如何工作的


提前感谢您的努力

我猜您需要将车轮设置为车身的父级,然后在脚本中相对于车身旋转车轮


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

请添加一些有关您看到的行为的更多信息,屏幕截图和代码片段将帮助其他人帮助您。我真的不认为铰链关节可以这样使用,你知道吗?这根本不是他们的目的。很简单,您只需“使用转换”。即车轮总成是底盘的子部件。就这些。(只需
.Rotate
子变换-没什么大不了的。值得注意的是,建造汽车钻机的工程极其复杂-需要1-2人年的工作。Unity中几乎每个汽车项目都使用资产商店(或Edy的新竞争对手之一)的著名“Edy的汽车物理”这是如此的困难,实际上没有维基、社区等方面的努力。除此之外,它完全改变了w/Unity 5,因为他们完全改变了“车轮碰撞器”(曾经非常奇怪,现在只是奇怪)。