Unity 3D动画角色与父物体Transform间距异常增大求助
Unity角色模型与父物体间距持续增大的解决思路
排查方向与修复方法
- 根运动冲突
Animator的Apply Root Motion开启后,动画会自主驱动角色位移,和脚本移动逻辑叠加就会导致偏移。要么关掉这个选项,要么修改脚本,用Animator.deltaPosition来同步父物体位置,替代直接修改父物体Transform的逻辑。 - 动画片段自带位移
部分移动动画的根节点在动画里有偏移,哪怕关了根运动,模型localPosition也会被动画篡改。打开Animation窗口,选中对应动画片段,检查根节点的Position曲线,删掉多余位移关键帧;或者在动画导入设置里勾选Bake Into Pose,把Root Transform Position设为Override,强制根位置归零。 - 脚本移动逻辑错误
检查ThirdPersonMovement脚本,是不是误把模型Transform当成了移动目标?确保所有移动逻辑都作用于父物体Transform,别碰模型自身的Transform。 - 父子初始偏移
手动在Inspector里把模型的localPosition和localRotation重置为(0,0,0)和(0,0,0),可能初始就有偏移,移动时被持续放大。 - Animator挂载位置错误
如果Animator挂在模型上,父物体移动时动画会干扰模型相对位置。建议把Animator移到父物体上,模型作为子物体,让动画驱动父物体位移(若用根运动)。
调试小技巧
- 在Update中打印模型的
localPosition值,观察偏移规律,快速定位是脚本还是动画的问题。 - 暂时禁用移动脚本,只播放动画,看模型是否还偏移,排查问题源头。
内容的提问来源于stack exchange,提问作者TurtleLover69
相关产品推荐
相关产品推荐

