当前位置:   article > 正文

在Unity中制作和使用图集_unity 2023.1 sprite atlas pack preview 没有生成图集

unity 2023.1 sprite atlas pack preview 没有生成图集


在Unity中制作和使用图集(Texture Atlas)是优化UI和2D游戏性能的一个重要步骤。图集能够帮助减少Draw Call(渲染调用),从而提升游戏运行效率。以下是使用Unity创建和应用图集的基本步骤,涵盖Unity内置的Sprite Packer以及可能涉及的第三方工具如NGUI或TextMeshPro的简要说明。

使用Unity内置Sprite Packer

  1. 项目设置

    • 首先,确保Sprite Packer已启用。进入Edit > Project Settings > Graphics,确认Always Include In Build选项已勾选你想要打包进图集的Sprite。
    • 进入Edit > Project Settings > Editor,在Sprite Packer部分,将Mode设置为Always Enabled,这会确保每次构建时都自动打包图集。
  2. 准备图片资源

    • Assets文件夹下创建一个文件夹,比如Sprites,并将所有需要打包进图集的图片放入该文件夹。
  3. 创建Sprite Atlas

    • Sprites文件夹或者任意合适的资源文件夹内,右键选择Create > Sprite Atlas。给图集命名,例如UIAtlas
  4. 配置图集

    • 选择刚创建的Sprite Atlas,在Inspector窗口中,点击Atlas选项卡,然后在Objects for Packing区域点击加号,添加之前准备好的图片文件夹或直接拖拽图片到该区域。
  5. 打包图集

    • 在Inspector中点击Pack PreviewPack按钮来生成图集。完成后,图集将作为一个大纹理出现,并且包含一个.meta文件记录图集内容。

使用图集

  • UI元素

    • 对于UGUI,你可以直接将图集中的Sprite拖拽到Image组件的Source Image上,或者使用Sprite Renderer组件,并在Sprite属性中选择相应的Sprite。
  • 代码访问

    • 通过脚本访问图集中的Sprite,可以使用Resources.Load<Sprite>("Path/To/Atlas/Sprite"),或者如果图集已经作为对象引用,则可以直接从图集中获取。

NGUI图集制作(如果使用NGUI)

  • 导入图片

    • 导入需要加入图集的图片资源到Unity项目中。
  • 使用Atlas Maker

    • 在NGUI工具栏找到NGUI > Open > Atlas Maker
    • 选择场景中的任意图片,点击ADD添加至图集,或直接在Atlas Maker窗口中操作。
  • 创建与保存图集

    • 设置图集名称和存储路径,点击Create完成图集制作。

TextMeshPro中文支持

对于TextMeshPro(TMP)支持中文显示,主要是确保字体资源正确导入并配置。TMP具有较好的Unicode支持,但可能需要导入或创建支持中文字符的字体材质。在TMP文本组件的Font Asset设置中,选择一个包含所需中文字符的字体材质即可。

以上步骤概括了在Unity中创建和使用图集的基本流程,根据具体需求和使用的UI框架(如UGUI或NGUI),细节可能有所差异。

应用案例:在Unity中创建一个使用图集的UI界面

场景设定

假设我们正在开发一款手机游戏,需要创建一个包含多个按钮、图标和背景的主菜单界面。为了优化性能,我们决定将所有的UI元素整合到一个或几个图集中。

步骤概览

1. 准备UI元素
  • 设计并导出所有需要的UI元素(按钮、图标、背景等)为PNG或JPEG格式的图片文件。
  • 将这些图片文件导入Unity项目,存放在一个专门的文件夹,如Assets/UIElements
2. 创建Sprite Atlas
  • UIElements文件夹中,右键选择Create > Sprite Atlas,命名为MainMenuAtlas
  • 在Inspector窗口中,将之前导入的所有UI元素拖拽到Objects for Packing区域。
  • 点击Pack按钮生成图集。
3. 使用图集中的Sprite
  • 创建一个新的Canvas作为UI的根节点。
  • 为每个UI元素(如按钮)创建一个GameObject,并添加Image组件。
  • 选择一个GameObject,如Button,然后在Inspector窗口的Image组件下,点击Source Image右侧的小圆圈,从弹出的项目资源窗口中选择MainMenuAtlas图集中的相应Sprite。
4. 调整与布局
  • 使用Unity的布局系统(如Vertical Layout Group、Horizontal Layout Group或Grid Layout Group)或者直接调整RectTransform来布局UI元素。
  • 对于按钮,还可以添加Button组件,并为其指定交互事件。
5. 动态加载与优化
  • 如果UI界面较大,可以考虑将图集设置为异步加载,以避免影响初始加载时间。
  • Project Settings > Quality中,调整Max Number of TextureAtlas的值,以控制最大同时加载的图集数量,优化内存使用。
6. 测试与调整
  • 运行场景,检查UI界面是否正常显示,按钮交互是否有效。
  • 使用Unity的Profiler工具监测Draw Call数量,确保图集优化达到预期效果。

结果

通过上述步骤,我们成功创建了一个高效的UI界面,其中所有UI元素均从单一或少数几个图集中加载,减少了Draw Call的数量,提升了游戏的运行效率。此外,图集的使用还便于管理UI资源,简化了更新和维护过程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/832786
推荐阅读
相关标签