图像资源的自动剪裁
导入图像资源后生成的 SpriteFrame 会进行自动剪裁,去除原始图片周围的透明像素区域。这样我们在使用 SpriteFrame 渲染 Sprite 时,将会获得有效图像更精确的大小。
Sprite 组件剪裁相关设置详解
Sprite 组件设置有以下两个:
Trim勾选后将在渲染 Sprite 图像时去除图像周围的透明像素,我们将看到刚好能把图像包裹住的约束框。取消勾选,Sprite 节点的约束框会包括透明像素的部分。Size Mode用来将节点的尺寸设置为原图或原图裁剪透明像素后的大小,通常用于在序列帧动画中保证图像显示为正确的尺寸。有以下几种选择:TRIMMED选择这个选项,会将节点的尺寸(size)设置为原始图片裁剪掉透明像素后的大小。RAW选择这个,会将节点尺寸设置为原始图片包括透明像素的大小。CUSTOM自定义尺寸,用户在使用 矩形变换工具 拖拽改变节点的尺寸,或通过修改Size属性,或在脚本中修改width或height后,都会自动将Size Mode设为CUSTOM。表示用户将自己决定节点的尺寸,而不需要考虑原始图片的大小。 下图中展示了两种常见组合的渲染效果:自带位置信息的序列帧动画
Sprite 组件 的Trim设为false,将Size Mode设为RAW。这样动画在播放每个序列帧时,都将使用原始图片的尺寸,并保留图像周围透明像素的信息,这样才能正确显示绘制在动画中的角色位移。Trim设为true,则是在位移完全由角色位置属性控制的动画中,更推荐使用的方式。TexturePacker 设置
TexturePacker这样的工具将序列帧打包成图集,并在导入后通过图集资源下的SpriteFrame来使用。在 TexturePacker 中输出图集资源时,Sprites 分类下的 Trim mode 请选择Trim,一定不要选择Crop, flush position,否则透明像素剪裁信息会丢失,您在使用图集里的资源时也就无法获得原始图片未剪裁的尺寸和偏移信息了。
