我需要像铰链关节那样设置可配置的关节,它应该像将玩家连接到物体的金属梁,但是麻烦的是,当我设置锚点并限制其向前飞行的轴线时,玩家不会立即停下来物体然后掉到极限,所以我的光束的大小从较短变长,这很不好。你能帮我吗?
这是代码段:
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;
提前谢谢您。
答案 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也很有可能会有所帮助,因为您似乎正在尝试做类似的事情。