Sprite Mode:一张纹理怎样成为 Sprite

Sprite Mode 决定 Unity 怎样划分一张图片。
  • Single:整张 Texture 对应一个 Sprite。
  • Multiple:在同一张 Texture 上记录多个矩形区域,每个区域成为一个可单独引用的 Sprite。
  • Polygon:按照多边形轮廓生成 Sprite,适合特殊形状资源。
Multiple 的本质不是复制图片,而是建立“子区域坐标”。多个 Sprite 仍共享同一张底图,只是各自保存了位置、尺寸、Pivot 等元数据。

Sprite Editor 与 Grid By Cell Size:怎样定义每一帧

Sprite Editor 操作的是 Sprite 的区域数据,不会修改原 PNG 像素。
  • Automatic:根据不透明像素自动寻找边界。
  • Grid By Cell Size:按照固定的单帧像素宽高切分。
  • Grid By Cell Count:按照指定行数和列数切分。
规则角色序列图使用 Grid By Cell Size,是因为一个动画帧可能同时包含人物、武器、刀光和透明留白。Automatic 只看像素分布,可能把同一帧中的分离图形错误拆开;固定网格按美术预先规定的帧尺寸切分,不受画面内容影响。
重新切片时:
  • Delete Existing:删除旧区域后重新生成。
  • Smart:尽量匹配并保留原切片。
  • Safe:只增加不与旧切片重叠的新区域。
这些模式控制的是旧 Sprite 元数据怎样处理。已经被 Animation Clip 引用的 Sprite 被删除或重新生成后,原引用可能失效。

Pixels Per Unit:像素与世界单位的换算

PPU 表示多少图片像素等于 Unity 世界中的 1 Unit。
48 像素宽的 Sprite:
  • PPU = 100 时,宽度是 0.48 Unit。
  • PPU = 16 时,宽度是 3 Unit。
因此把 PPU 从 100 改成 16,改变的是角色在世界中的尺寸以及它与地块、碰撞体、移动距离之间的比例,不会改变原图分辨率,也不会直接让图像更清晰。

Pivot:Sprite 对齐到 Transform 的位置

Pivot 是 Sprite 内部的参考点。SpriteRenderer 绘制图片时,会把 Pivot 对齐到所在 GameObject 的 Transform 原点。
  • Center、Top、Bottom、Left、Right 和四个 Corner:使用固定方位作为参考点。
  • Custom:手动指定参考点。
动画抖动的本质通常是不同帧中的人物身体相对 Pivot 发生了变化。攻击帧的刀光和透明留白会改变整张帧的视觉范围,所以图片矩形中心不一定等于人物身体中心。

Filter Mode:纹理采样时怎样取颜色

屏幕像素并不一定与纹理像素一一对应。Filter Mode 决定 GPU 在缩放、移动或旋转后怎样从纹理中取样。
  • Point:选择最近的一个纹理像素,不混合相邻颜色,保留清楚的像素边界。
  • Bilinear:混合周围四个像素,画面更平滑,但像素画会变糊。
  • Trilinear:除了像素插值,还会混合相邻 Mipmap 层级,主要服务于远近变化明显的 3D 纹理。
Point 的本质是关闭颜色插值,但它不能解决半像素位置和非整数倍率造成的抖动。

Compression:纹理数据怎样存储

Compression 决定导入和目标平台是否使用有损纹理格式。
  • None:尽量保留原始颜色和透明边缘,但占用更多内存、显存和包体。
  • Low、Normal、High Quality:使用不同质量等级的压缩,可能近似合并颜色并产生色块或透明边缘伪影。
像素画中每一个色块和边缘都很明显,所以有损压缩更容易被看见。Compression = None 解决的是压缩失真;Filter Mode = Point 解决的是采样模糊;PPU 解决的是世界尺寸,三者不是同一个属性。

Texture Importer 中其他相关属性

Texture Type

Texture Type 决定 Unity 用什么资源管线解释图片。角色图选择 Sprite (2D and UI) 后,Unity 才提供 Sprite Mode、PPU 和 Sprite Editor 等 Sprite 数据。

Mesh Type

  • Full Rect:使用完整矩形网格,规则、稳定,并保留透明区域。
  • Tight:尽量沿不透明轮廓生成网格,减少透明区域,但会受到复杂刀光和特效轮廓影响。
Mesh Type 决定绘制 Sprite 使用的几何网格,不负责图片切片或动画对齐。

Alpha Source 与 Alpha Is Transparency

Alpha Source 决定透明度来自 PNG Alpha、灰度还是完全不使用透明度。Alpha Is Transparency 会处理透明边缘附近的颜色,减少滤波或缩放时出现的脏边。

sRGB

开启时把纹理当作供人眼观看的颜色数据;关闭时更适合遮罩、法线等数值数据。角色美术属于颜色纹理。

Max Size

限制导入纹理的最大边长。原图超过它时会先被缩小,缩小后丢失的像素细节无法通过放大恢复。

Read/Write Enabled

开启后 CPU 可以读取纹理像素,但 Unity 需要保留额外可读数据。普通 SpriteRenderer 只负责显示时不需要开启。

Generate Mip Maps

生成多套逐级缩小纹理,主要用于远距离 3D 纹理。固定视角像素角色通常不需要,否则会增加内存并可能引入模糊。

Wrap Mode

  • Clamp:纹理坐标超出边缘后继续使用边缘颜色。
  • Repeat:从另一侧循环。
  • Mirror:镜像循环。
角色 Sprite 不需要在边缘外重复,所以通常使用 Clamp。

Generate Physics Shape

根据 Sprite 不透明轮廓生成物理形状数据。它把美术轮廓转成碰撞参考,但角色每帧轮廓会变化,不能把它当成稳定的角色身体碰撞范围。

Border

记录九宫格边界,供 Sliced 和 Tiled 绘制使用。普通角色使用 Simple 绘制时,Border 不参与作用。

Pixel Perfect Camera 与像素清晰度

Pixel Perfect Camera 处理的是世界坐标到屏幕像素的映射。Assets Pixels Per Unit 应与资源 PPU 使用同一标准;Pixel Snapping 和整数倍放大用于减少半像素位置造成的抖动。
它不能替代 Point 或 Compression = None:纹理导入、纹理采样和相机映射分别处于不同阶段。