如何使用unity3d在圆柱/摆上保持位置

本文关键字:位置 何使用 unity3d | 更新日期: 2023-09-27 18:07:33

我是Unity新手,尝试创建一个像刚性钟摆一样移动的圆柱体。我用一个铰链关节在气缸和电机的顶部,以增加力量。

当我停止施加力时,我如何使气缸保持位置而不回落到"死"位置?

JointMotor m = new JointMotor();
m.force = 10000;
m.targetVelocity = 0;
m.freeSpin = true;
GetComponent<HingeJoint>().motor = m;

如何使用unity3d在圆柱/摆上保持位置

您可以尝试手动计算。创建一个空对象作为枢轴,使手臂和鲍勃它的子对象,并使用Lerp()旋转你的枢轴。像这样的代码可能会起作用:

public class Penduluum : MonoBehaviour {
 public float angle = 45.0f;
 public float speed = 1.5f;
 Quaternion Start, End;
 void Start () {
     Start = Quaternion.AngleAxis ( angle, Vector3.forward);
     End   = Quaternion.AngleAxis (-angle, Vector3.forward);
 }
 void Update () {
   transform.rotation = Quaternion.Lerp (Start, End, (Mathf.Sin(Time.time * speed) + 1.0f) / 2.0f);
 }

}