使用look_at函数时Sprite出现拉伸变形,该如何排查解决?
Sprite上下方向扭曲问题的解决方法
你的Sprite朝上/下方向时扭曲拉长、朝左/右正常的情况,和旋转有间接关联,但核心是Sprite的缩放、纹理设置或锚点配置问题,以下是具体排查和修复步骤:
1. 调整Sprite的缩放模式
选中Sprite节点,在检查器中修改Scale Mode:
- 若当前为
Stretch模式,切换为Keep Aspect(保持纹理宽高比)或Tile(平铺模式),Stretch会强制拉伸纹理适配节点尺寸,旋转后上下方向的拉伸问题会被放大。 - 确认
Sprite的Scale属性为(1,1),避免非均匀缩放残留。
2. 开启像素对齐
在Sprite检查器中启用Pixel Snap选项,防止浮点坐标导致的纹理错位拉伸,尤其是像素尺寸非偶数的Sprite,旋转后更容易出现这类视觉问题。
3. 重置锚点到中心
如果Sprite的锚点不是(0.5, 0.5),旋转时会因锚点偏移产生拉伸错觉,将锚点改回中心后再测试。
4. 代码层面补充修复
你的look_at方法仅修改旋转角度,但如果存在历史缩放残留,旋转会放大变形。可以在look_at后添加一行代码强制重置缩放:
$Sprite.look_at(destination) $Sprite.scale = Vector2(1, 1) # 确保缩放统一
额外排查点
如果以上方法无效,检查PNG纹理本身是否存在变形,或导入时是否修改了纹理的导入设置(比如强制调整了宽高比)。
内容的提问来源于stack exchange,提问作者pythonNovice
相关产品推荐
相关产品推荐

