为什么我在Krita制作的Sprite导入Unity后显示尺寸异常偏大?
核心原因
这个问题本质是Unity 2D渲染的Pixels Per Unit(PPU) 配置和Sprite像素尺寸不匹配导致的,和Krita本身没有关联:
Unity默认导入Sprite的PPU值为100,含义是Unity世界坐标系中1个单位长度对应Sprite的100个像素。比如你在Krita中制作的是1000×1000像素的Sprite,默认导入后在Unity场景中就会显示为10×10单位大小,刚好需要缩放到0.1倍才能得到1×1单位的显示效果,和你遇到的现象完全吻合。
少量情况可能和PNG的DPI元数据有关,但Unity读取Sprite时默认忽略DPI配置,不会影响实际显示尺寸。
是否和Krita导出设置有关?
绝大多数情况无关,只有你在Krita导出PNG时,主动勾选了导出菜单里的调整图像大小选项、放大了导出文件的像素尺寸时,才会出现尺寸异常。你可以直接查看导出后PNG文件的属性,确认像素尺寸和你Krita画布设置的尺寸一致,即可排除导出设置的问题。
是否需要更换美术制作软件?
完全不需要。该问题是Unity导入侧的配置问题,无论是PS、Aseprite还是其他像素美术工具制作的Sprite,导入Unity时如果PPU配置和Sprite像素尺寸不匹配,都会出现同样的显示尺寸异常。
解决方案
- 统一项目工作流参数:提前确定项目通用的PPU值(2D像素游戏常用16/32/64,普通2D游戏可根据需求调整),制作Sprite时按PPU的整数倍设计像素尺寸即可,比如你设置项目PPU为100,要做1单位大小的Sprite就制作100×100像素的资源
- 调整导入配置:选中Unity项目窗口中的Sprite资源,在Inspector面板中修改
Pixels Per Unit参数为你项目的统一值,点击应用后Sprite就会以预期尺寸显示,不需要手动修改Transform的缩放值 - 批量处理:如果已经导入大量Sprite资源,可以通过Unity编辑器脚本批量修改所有Sprite的PPU参数,无需逐个调整
内容的提问来源于stack exchange,提问作者Dr. Unventor
相关产品推荐
相关产品推荐

