一。测试代码:
二。发现Debug不一样的原因 与解决方案:
下图右边所示: 网格类型默认为紧密 在 Unity 中,纹理导入时可能存在自动的偏移和裁剪设置。即便你没有手动切片,Unity 可能会根据纹理的导入设置,对纹理进行一些默认的处理,例如去除纹理边缘的透明像素,这会导致 Sprite.textureRect 记录的是经过处理后的纹理区域位置和大小。而 Sprite.rect 是基于精灵本身的尺寸,不会受到这种纹理裁剪的影响。

如果 改为全矩形: 这Debug.log 就一样了!

如下图所示:根据上面第二行debug 的偏移坐标大概(2,71);在精灵编辑器里演示就合理了

将右下角的左边距和底边距分别调整,可以发现左下角的绿点为偏移起点,如果再调整一下右边的边距就可以得到,网格模式紧密下的Sprite的宽度与高度就跟Debug的数据一样了。

