我有一个子对象,一个铁杆(具有刚体和重力),并连接到长臂(带有刚体和isKinematic)。我只需要将铁杆的旋转角度从 1度限制到40度,这样它就不会落水并击中 Long Arm 。请参考附件图片以获取更多信息。我尝试了使用铰链接头及其 Limit 选项以及通过代码进行几种方法。但是我似乎无法解决这个问题。现在,我已将此脚本附加到 Iron Bar (铁条),但似乎没有任何作用。
public Transform targetTransform;
private Vector3 _currentAngle;
private Vector3 _targetAngle;
float rotationX;
void FixedUpdate () {
transform.right = targetTransform.transform.right; //-- To make the Iron Bar follow player rotation
rotationX = transform.eulerAngles.x;
if (rotationX > 40) {
_targetAngle = new Vector3 (40, transform.eulerAngles.y, transform.eulerAngles.z);
_currentAngle = new Vector3 (Mathf.LerpAngle (transform.eulerAngles.x, _targetAngle.x, Time.deltaTime), Mathf.LerpAngle (transform.eulerAngles.y, _targetAngle.y, Time.deltaTime), Mathf.LerpAngle (transform.eulerAngles.z, _targetAngle.z, Time.deltaTime));
transform.eulerAngles = _currentAngle;
} else if (rotationX < 1) {
_targetAngle = new Vector3 (1, transform.eulerAngles.y, transform.eulerAngles.z);
_currentAngle = new Vector3 (Mathf.LerpAngle (transform.eulerAngles.x, _targetAngle.x, Time.deltaTime), Mathf.LerpAngle (transform.eulerAngles.y, _targetAngle.y, Time.deltaTime), Mathf.LerpAngle (transform.eulerAngles.z, _targetAngle.z, Time.deltaTime));
transform.eulerAngles = _currentAngle;
}
}
希望您能提供任何帮助。感谢您的关注。
注意:这是一个修订后的问题,但与我已经部分解决的第一个问题有关。进行了修订以进一步澄清。