所以我正在制作一款汽车游戏,目前正在从测试版转向量产版。
一切都进行得很顺利,直到我带来了我的测试车模型的替代品(在默认的FBX. Settings中导出为一个对象)...无论如何,所以我引入了替换并将我的代码应用到它,汽车运行良好,并且它在移动,但是由于某种原因,车轮几何形状总是在其y轴上旋转90度。该代码通过将车轮碰撞器的变换信息应用于车轮几何体来工作。
// this function will update the car's wheels' positions and rotation as they are moving.
private void UpdateWheelPosAndRotation()
{
UpdateIndiWheelPosAndRotation(FPW, FPT);
UpdateIndiWheelPosAndRotation(FDW, FDT);
UpdateIndiWheelPosAndRotation(BPW, BPT);
UpdateIndiWheelPosAndRotation(BDW, BDT);
}
//this is the helper function to the one above... It will take the wheel info from the collider and apply it to the transform.
private void UpdateIndiWheelPosAndRotation(WheelCollider _wheelCollider, Transform _transform)
{
Vector3 _pos = _transform.position;
Quaternion _rot = _transform.rotation;
_wheelCollider.GetWorldPose(out _pos, out _rot);
_transform.position = _pos;
_transform.rotation = _rot;
}
删除这段代码后,滚轮的y轴旋转保持正常。
这是我按播放键时的画面
任何关于尝试什么的想法,请评论该想法
1条答案
按热度按时间0md85ypi1#
我通过向车轮网格变换添加90度修正了该问题,为此,我创建了以下函数:
FDT、BDT...代表前驱动轮变换、后驱动轮变换,这与代表前乘客轮变换的FPT等相同