所以我想让自行车的车把和前轮有相同的Y轴旋转。前轮有一个轮子碰撞器连接到它。前轮网格有这样的代码来获得和轮子碰撞器在所有轴上相同的旋转:
`
private void FixedUpdate()
{
UpdateWheel(front, frontTransform);
UpdateWheel(rear, rearTransform);
}
private void UpdateWheel(WheelCollider col, Transform trans)
{
Vector3 pos;
Quaternion rot;
col.GetWorldPose(out pos, out rot);
trans.position = pos;
trans.rotation = rot;
}
我试过以与前轮相同的速度旋转车把,然后在30/-30度时夹紧它。这是代码:
float currentRotation;
void SetCurrentRotation(float rot)
{
currentRotation = Mathf.Clamp(rot, -30, 30);
transform.rotation = Quaternion.Euler(0, rot, 0);
}
void Update()
{
float newRotation = currentRotation + Input.GetAxis("Horizontal") * rotationSpeed;
SetCurrentRotation(newRotation);
}
`
这里的问题是,当父级转向车把时,发生了以下情况:https://www.kapwing.com/videos/6370aeb77608ff0199ea3184
我也尝试过使用父约束组件,但即使锁定X轴,也始终存在一些X旋转。
任何帮助都是感激不尽的,谢谢!
1条答案
按热度按时间dy1byipe1#
我不确定这是否有帮助,但我建议使用四元数。旋转朝向,而不是使用欧拉坐标。