如何将Box Collider 2D的Y Offset设为0且使其完全覆盖图像?
嘿,这个问题我碰到好多次了,多半是Sprite的轴心设置或者Collider尺寸没匹配上,给你几个靠谱的解决办法:
检查Sprite的Pivot设置:这是最常见的诱因。找到你用的Sprite资源,打开它的Inspector面板,看
Pivot选项。如果当前是底部对齐(比如数值是(0.5, 0)),那当Collider的Y Offset设为0时,它会以Sprite的底部为中心,自然只能覆盖一半区域。你只需要把Pivot改成中心对齐(数值设为(0.5, 0.5)),这样Collider的中心和Sprite的中心重合,Y Offset为0时就能完全覆盖整个图像了。手动调整Collider的Size参数:要是你不想改动Sprite的Pivot(比如有其他需求依赖当前轴心),那就直接调Box Collider 2D的
Size。先把Y Offset固定为0,然后慢慢增大Size的Y值,同时在Scene视图里实时观察,直到Collider完全包裹住Sprite就行,这个方法灵活度很高。用Unity自带的Auto Size功能:Unity其实给了偷懒的办法。选中带Box Collider 2D的GameObject,在Inspector的Box Collider 2D组件里,点击
Edit Collider旁边的小齿轮图标,选择Auto Size。这个功能会自动根据Sprite的尺寸和当前Pivot,调整Collider的Size和Offset。不过记得之后要把Y Offset手动改回0,或者确认自动设置后Y Offset已经是0了。
内容的提问来源于stack exchange,提问作者inter cretasyo

