Unity UI Sprite
- UI资源导入详解
- 图片导入项目
- Texture Type
- Texture Shape
- Advanced Setting 高级设置
- 图片设置案例
- 常见细节问题
- 知识点详解来源
UI资源导入详解
Unity中的UI资源有图片、矢量图、字体、预制体、图集、动画等等资源。
这其中图片是最重要以及最基础的资源组成,所以图片的资源管理是影响整个项目的重点。
图片导入项目
直接拖拽到项目的对应文件夹中,文件夹需要进行分配分类好,建议按照功能页面进行分文件夹,方便后期打图集。
导入后的配置
Texture Type
-
图片导入后的默认参数Default:
通用的纹理类型,一般在Material上的材质图片参数使用,比如漫反射、法线贴图这些。
-
Normal Map 法线贴图参数
专职用于法线贴图的格式,用于存储法线信息,模拟凹凸表面光照效果。
使用在3D模型的专业法线贴图。有Unity提供的Api开关(勾选Creat From Grayscale)生成法线。
-
Editor GUI and Legacy GUI (编辑器 GUI 和旧版 GUI)
如果要在任何 HUD 或 GUI 控件上使用纹理,请选择 Editor GUI and Legacy GUI。 -
Cursor (光标)
选择 Cursor 可将纹理用作自定义光标。 -
Cookie (光照遮罩(饼干))
用于灯光(如聚光灯)的投影遮罩纹理。
适用场景:模拟灯光透过窗户、树叶等效果。 -
LightMap (光照贴图)
存储预计算的光照信息。
适用场景:静态场景的烘焙光照。
此选项允许将纹理编码为特定格式(RGBM 或 dLDR,具体取决于平台)并通过后期处理步骤对纹理数据进行处理(推拉式扩张通道)。 -
Directional LightMap (方向光照贴图)
方向 -
ShadowMask (阴影遮罩)
混合光照使用贴图。 -
Single Channel (单通道)
仅使用单通道(如R通道)存储数据。
适用场景:
高度图(Heightmap)。
遮罩纹理(如R通道控制金属度)。
Texture Shape
使用texture shape 可以选择和定义纹理的形状和结构。
- 2D 是用于所有纹理的最常用设置;它将图像文件定义为 2D 纹理。这些设置用于将纹理映射到 3D 网格和 GUI 元素以及其他项目元素。
- Cube 将纹理定义为立方体贴图。例如,可将其用于天空盒或反射探针。此类型仅可用于 Default、Normal Map 和 Single Channel 纹理类型。
- 2D Array 将纹理定义为 2D 数组纹理。这通常用作某些渲染技术的优化,其中会使用许多具有相同大小和格式的纹理。
- 3D 将纹理定义为 3D 纹理。某些渲染技术使用 3D 纹理表示体积数据。
Advanced Setting 高级设置
根据不同texture type有不同的Advanced setting.
这里说一些常用的设置:
-
sRGB(Color texture)
控制是否将纹理视为颜色空间数据(sRGB)。
开启:
颜色纹理(如漫反射贴图、UI图片)。
关闭:
非颜色数据(如法线贴图、金属度贴图)。
启用此属性可指定将纹理存储在伽马空间中。对于非 HDR 颜色纹理(例如反照率和镜面反射颜色),应始终选中此复选框。如果纹理存储了有特定含义的信息,并且您需要着色器中的确切值(例如,平滑度或金属度),请禁用此属性。默认情况下会启用此属性。 -
Alpha Source (透明度来源)
定义透明通道a的来源。None:无透明通道。无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道。 Input Texture Alpha:使用原始图片的Alpha通道。如果提供了纹理,则使用输入纹理中的 Alpha。 From Gray Scale:根据灰度图生成Alpha通道。从输入纹理 RGB 值的平均值生成 Alpha。
指定如何生成纹理的 Alpha 通道。
-
Alpha Is Transparency (透明通道是否透明)
用途:将Alpha通道作为透明蒙版处理。
开启:
带透明度的UI图片或精灵。
关闭:
不需要透明度的贴图(如法线贴图)
如果指定的 Alpha 通道为透明度 (Transparency),则启用此属性可扩充颜色并避免边缘上的过滤瑕疵。 -
Non-Power of 2(非2次幂尺寸)
处理非2次幂(如513x513)的纹理
None:保持原尺寸,可能导致性能问题。ToNearest:缩放到最近的2次幂(如512x512)。适用场景:移动端或低性能平台建议使用2次幂纹理。
-
Generate Mip Maps(生成Mip Maps)
为纹理生成多级渐远纹理链,优化远距离显示效果。
开启:
3D场景中的远距离物体贴图。
关闭:
UI或2D精灵(避免模糊)。
法线贴图(可能破坏法线数据) -
Wrap Mode(循环模式)
控制纹理在UV超出[0,1]范围时的显示方式。
选项:
Repeat:平铺重复。
Clamp:边缘像素拉伸。
适用场景:
Repeat:地面、天空盒贴图。
Clamp:UI背景或角色贴图。 -
Filter Mode(过滤模式)
控制纹理缩放时的平滑处理方式。
选项:
Point (no filter):点,无滤镜,像素化风格(适合像素游戏)。
Bilinear:线性插值(中等平滑)。
Trilinear:结合Mip Maps的平滑(最平滑)。
适用场景:
Point:像素艺术或需要锐利边缘的UI。
Bilinear/Trilinear:3D模型贴图或平滑渐变的UI。 -
Compression(压缩格式)
优化纹理内存占用和加载速度。
None:无压缩(最高质量,最大内存)。Low/High Quality:通用压缩(平衡质量与性能)。ASTC(移动端):高效压缩(如ASTC 6x6)。DXT/BCn(PC/主机):DirectX压缩格式(如DXT5支持Alpha)。ETC/ETC2(Android兼容格式)。适用场景:移动端优先选择ASTC或ETC2。PC端选择DXT5(带Alpha)或BC7(高质量)。
- Read/Write (读写)
Read/Write Enable(是否启用读写) 开启读写可以访问Texture2D.SetPixels, Texture2D.GetPixels和其他Texture2D方法。开启会使Texture所需内存量增加一倍。因此默认情况下禁用此属性,并且仅在需要脚本访问权限时才启用它。
图片设置案例
-
UI按钮图片
Texture Type:Sprite (2D and UI)
Sprite Mode:Single
Pixels Per Unit:100(与Canvas Scaler一致)
sRGB:开启
Generate Mip Maps:关闭
Compression:ASTC 6x6(移动端)或DXT5(PC)
Filter Mode:Bilinear -
3D模型法线贴图
Texture Type:Normal map
sRGB:关闭
Create from Grayscale:开启(根据高度图生成法线)
Compression:BC5(PC)或ASTC 6x6(移动端)
Generate Mip Maps:开启
Wrap Mode:Repeat
-
像素艺术角色
Texture Type:Sprite (2D and UI)
Filter Mode:Point (no filter)
Compression:None(避免压缩导致像素模糊)
Non-Power of 2:ToNearest(确保纹理尺寸为2次幂)
常见细节问题
- 图片模糊:
检查Filter Mode是否为Bilinear(关闭Mip Maps)。
确保Pixels Per Unit与Canvas Scaler的Reference Resolution匹配。 - 透明边缘黑边:
开启Alpha Is Transparency,并检查原始图片的Alpha通道是否干净。 - 内存占用过高:
使用合适的压缩格式(如ASTC/DXT5)。
关闭不必要的Mip Maps。
知识点详解来源
- 纹理类型: 纹理类型
- 光照模式的定向贴图: Directional Lightmap :Directional Lightmap
- 混合光照概念:Shadowmask
- 混合光照详解
- 编辑器 GUI 和 旧版GUI
- Texture Import Settings - texture shape
- 部分补充设置