如何使用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;
您可以尝试手动计算。创建一个空对象作为枢轴,使手臂和鲍勃它的子对象,并使用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);
}
}