Unity3d中的非轴对齐棱柱连接?

时间:2018-01-30 02:50:35

标签: c# unity3d kinematics

我知道如何使用ConfigurableJoint制作轴对齐的棱柱连接。对于沿x轴的棱柱形接头,我可以执行以下操作:

ConfigurableJoint joint;
joint.angularXMotion = ConfigurableJointMotion.Locked;
joint.angularYMotion = ConfigurableJointMotion.Locked;
joint.angularZMotion = ConfigurableJointMotion.Locked;
joint.angularYMotion = ConfigurableJointMotion.Locked;
joint.angularZMotion = ConfigurableJointMotion.Locked;
joint.axis = Vector3.right;

其他轴对齐关节同样容易。但是,如果我想沿着轴做一个棱柱形接头,比如说,(1 / sqrt(3),q / sqrt(3),1 / sqrt(3))。有没有办法让这种情况发生?

1 个答案:

答案 0 :(得分:0)

X,Y,Z属性(如xMotion,angularYMotion等)不是指世界空间或对象空间坐标的X,Y,Z轴。它们引用您使用axissecondaryAxis定义的关节自己的坐标系:

  • axis属性定义关节的X轴
  • secondaryAxis定义关节的Y轴
  • 关节的Z轴由X和Y
  • 计算

所以基本上,你只需要定义你想要的X轴:

joint.axis = new Vector3(x, y, z); // defines the X axis, relative to the object's space