Unity3D可配置的联合故障

时间:2018-11-02 14:33:08

标签: c# unity3d game-physics

我需要像铰链关节那样设置可配置的关节,它应该像将玩家连接到物体的金属梁,但是麻烦的是,当我设置锚点并限制其向前飞行的轴线时,玩家不会立即停下来物体然后掉到极限,所以我的光束的大小从较短变长,这很不好。你能帮我吗?

这是代码段:

playerJoint.connectedAnchor = anchor.transform.position;
SoftJointLimit limit = new SoftJointLimit();
limit.limit = Vector3.Distance(anchor.transform.position, transform.position);
playerJoint.linearLimit = limit;
playerJoint.yMotion = ConfigurableJointMotion.Limited;
playerJoint.xMotion = ConfigurableJointMotion.Limited;

然后,当玩家按下按钮时,将运行以下代码:

playerJoint.yMotion = ConfigurableJointMotion.Free;
playerJoint.xMotion = ConfigurableJointMotion.Free;

提前谢谢您。

1 个答案:

答案 0 :(得分:1)

这听起来很像一个Rigidbody.interpolation问题。

如果不是这样,则应尝试手动将播放器的位置更改为所需的长度。像这样:

Vector3 hinge2Player = player.transform.position - anchor.transform.position;
hinge2Player = Vector3.ClampMagnitude(hinge2Player, /* [distance you want] */);
player.transform.position = hinge2Player + anchor.transform.position;

this也很有可能会有所帮助,因为您似乎正在尝试做类似的事情。