Godot 4.1运行时精灵因物理设置被缩放的问题求助
问题分析与解决方法
问题根源
你把Sprite2D作为CollisionShape2D的子节点是错误的层级设计。CollisionShape2D是RigidBody2D的碰撞逻辑组件,并非承载可视节点的容器,这种层级会导致变换继承计算异常,再加上碰撞形状尺寸与Sprite纹理尺寸不匹配,最终引发运行时的非预期缩放。
解决步骤
- 调整节点层级:将
Sprite2D改为RigidBody2D的直接子节点,和CollisionShape2D处于同级。这样两者会正确继承RigidBody2D及父节点Node2D的变换参数,避免层级嵌套带来的缩放混乱。 - 匹配碰撞形状与Sprite尺寸:
- 选中
Sprite2D,在检查器中确认纹理尺寸为294×711。 - 选中
CollisionShape2D,将其RectangleShape2D的尺寸设置为与纹理一致的294×711;更简便的方式是右键点击Sprite2D,选择「生成CollisionShape2D」,系统会自动创建匹配纹理尺寸的碰撞形状。
- 选中
- 统一缩放设置:保持只有父节点
Node2D的缩放为(0.12, 0.193),RigidBody2D、Sprite2D、CollisionShape2D的缩放均设为(1,1),避免多重缩放叠加导致的尺寸异常。
验证效果
调整完成后运行游戏,Sprite2D会按照父节点的缩放比例正常显示,同时受RigidBody2D的重力影响下落,碰撞逻辑也能正常工作。
内容的提问来源于stack exchange,提问作者tutiplain
相关产品推荐
相关产品推荐

