在Unity中制作和使用图集

文章目录

      • 使用Unity内置Sprite Packer
      • 使用图集
      • NGUI图集制作(如果使用NGUI)
      • TextMeshPro中文支持
    • 应用案例:在Unity中创建一个使用图集的UI界面
      • 场景设定
      • 步骤概览
        • 1. 准备UI元素
        • 2. 创建Sprite Atlas
        • 3. 使用图集中的Sprite
        • 4. 调整与布局
        • 5. 动态加载与优化
        • 6. 测试与调整
      • 结果

在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资源,简化了更新和维护过程。

😍😍 大量H5小游戏、微信小游戏、抖音小游戏源码😍😍
😍😍试玩地址: https://www.bojiogame.sg😍😍
😍看上哪一款,需要源码的csdn私信我😍

————————————————

​最后我们放松一下眼睛
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3019761.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙内核源码分析(特殊进程篇)

三个进程 鸿蒙有三个特殊的进程&#xff0c;创建顺序如下: 2号进程&#xff0c;KProcess&#xff0c;为内核态根进程.启动过程中创建.0号进程&#xff0c;KIdle为内核态第二个进程&#xff0c;它是通过KProcess fork 而来的.这有点难理解.1号进程&#xff0c;init&#xff0c…

kubeflow简单记录

kubeflow 13.7k star 1、Training Operator 包括PytorchJob和XGboostJob&#xff0c;支持部署pytorch的分布式训练 2、KFServing快捷的部署推理服务 3、Jupyter Notebook 基于Web的交互式工具 4、Katib做超参数优化 5、Pipeline 基于Argo Workflow提供机器学习流程的创建、编排…

还有谁不想薅云渲染的羊毛?五种云渲染优惠知道就是省到

不管你是效果图设计师还是动画设计师&#xff0c;在面对紧急或大量的渲染任务时&#xff0c;总会有云渲染的需要。然而&#xff0c;现在的云渲染越来越贵&#xff0c;我们该如何尽可能地节约成本完成渲染任务呢&#xff1f;本文将为你介绍云渲染的五种优惠形式&#xff0c;看完…

IP 地址追踪工具促进有效的 IP 管理

网络 IP 地址空间的结构、扫描和管理方式因组织的规模和网络需求而异&#xff0c;网络越大&#xff0c;需要管理的 IP 就越多&#xff0c;IP 地址层次结构就越复杂。因此&#xff0c;如果没有 IP 地址管理&#xff08;IPAM&#xff09;解决方案&#xff0c;IP 资源过度使用和地…

VSCode-vue3.0-安装与配置-export default简单例子

文章目录 1.下载VSCode2.修改语言为中文3.辅助插件列表4.vue3模板文件简单例子5.总结 1.下载VSCode 从官网下载VSCode&#xff0c;并按下一步安装成功。 2.修改语言为中文 点击确认修改&#xff0c;如下图所示&#xff1a; 或者打开命令面板&#xff1a;输入Configure Displ…

浅析扩散模型与图像生成【应用篇】(二十二)——DreamBooth

21. DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 本文提出一种根据少量样例图片来对文生图模型进行微调的方法&#xff0c;从而可以生成包含样例物体&#xff0c;但风格、姿态、背景都可以任意修改的图片。现有的文生图模型都是需要…

作为新型锂离子电池正极材料 磷酸锰铁锂(LMFP)行业发展空间有望扩展

作为新型锂离子电池正极材料 磷酸锰铁锂&#xff08;LMFP&#xff09;行业发展空间有望扩展 磷酸锰铁锂&#xff08;LMFP&#xff09;指在磷酸铁锂基础上添加锰元素而制成的新型磷酸盐类锂离子电池正极材料。磷酸锰铁锂含有橄榄石型结构&#xff0c;生产成本低、能量密度高、绿…

操作系统之管程

目录 一. 为什么要引入管程二. 管程的定义与基本特征三. 扩展1:用管程来解决生产者和消费者问题四. 扩展2: Java中类似于管程的机制 \quad 一. 为什么要引入管程 \quad \quad 二. 管程的定义与基本特征 \quad \quad 三. 扩展1:用管程来解决生产者和消费者问题 \quad 很智能 \qu…

VM 安装Ubuntu20

1、VM 新建虚拟机 类型配置 - 典型 安装源选择 &#xff08;安装包获取&#xff1a;Ubuntu桌面系统 | Ubuntu&#xff09; 设置计算机名与用户账号密码 为虚拟机命一个名&#xff0c;设置虚拟机文件保存的位置 设置磁盘相关信息 最后一步&#xff0c;确定虚拟机的相关参数 设置…

WDW-10B微机控制电子万能试验机技术方案

一&#xff0e;设备外观照片&#xff1a; 项目简介&#xff1a; 微机控制电子式万能试验机是专门针对高等院校、各种金属、非金属科研厂家及国家级质检单位而设计的高端微机控制电子式万能试验机、计算机系统通过全数字控制器&#xff0c;经调速系统控制伺服电机转动&#xff…

【UE+MQTT】Mqtt Client插件使用记录

步骤 1. 在虚幻商城中下载“Mqtt Client”插件 插件地址&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/34cbcaef7a664451a886dba37b4769bc?sessionInvalidatedtrue 文档地址&#xff1a;[虚幻引擎] DT Mqtt 插件详细说明 – DT 2. 在虚幻编辑器中确…

input对接二维码条形码扫描仪输入,检测扫描完成后按下回车事件

二维码和条形码扫描仪其实是模拟键盘输入的操作&#xff0c;只是操作比键盘要快很多&#xff0c;其实想要检测扫描仪输入完成的操作&#xff0c;可以有多种方式&#xff0c;一个是比较笨的&#xff0c;就是设置防抖操作&#xff0c;等间隔超过50ms就算输入完成&#xff0c;还有…

Vue3:menu导航栏出现多个同一跳转路径的菜单处理

文章目录 需求整理实现思路实现过程 需求整理&#xff0c;实现思路 最近公司想将之前老的项目整理出来&#xff0c;因为这个老项目内容太杂什么页面都往里面塞&#xff0c;导致菜单特别多&#xff0c;公司就像将这个老的项目迁出来&#xff0c;这个旧的项目本来是后端PHP写的。…

学完 C++ 基本语法后,您就可以开始学习 Qt 了。

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Qt的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;这些基本语法包括变量、类型、循环、判断、指针…

【启明智显技术分享】基于ESP32-S3方案的彩屏固件烧录指南

前言&#xff1a; 【启明智显】专注于HMI&#xff08;人机交互&#xff09;及AIoT&#xff08;人工智能物联网&#xff09;产品和解决方案的提供商&#xff0c;我们深知彩屏显示方案在现代物联网应用中的重要性。为此&#xff0c;我们一直致力于为客户提供彩屏显示方案相关的技…

Python-VBA函数之旅-repr函数

目录 一、repr函数的常见应用场景 二、repr函数使用注意事项 三、如何用好repr函数&#xff1f; 1、repr函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;https://blog.csdn.net/ygb_1024?spm1010.2135.…

Android单行字符串末尾省略号加icon,图标可点击

如图 设置仅显示单行字符串&#xff0c;末尾用省略号&#xff0c;加跟一个icon&#xff0c;icon可点击 tvName.text "test"val drawable ResourcesCompat.getDrawable(resources, R.mipmap.icon_edit, null)tvName.setCompoundDrawablesWithIntrinsicBounds(null,…

SpringCloud——consul

SpringCloud——consul 一、consul安装与运行二、consul 实现服务注册与发现1.引入2.服务注册3.服务发现 三、consul 分布式配置1.基础配置2.动态刷新3.配置持久化 四、参考 Eureka已经停止更新了&#xff0c;consul是独立且和微服务功能解耦的注册中心&#xff0c;而不是单独作…

Ubuntu20.04 OpenCV详细安装教程(附多版本切换共存教程)

opencv安装有两种方式&#xff1a; 1.使用包管理器安装预编译版本&#xff08;安装十分简单&#xff0c;但是版本只有4.2.0&#xff0c;且没有扩展模块且不支持Qt窗口&#xff09; 2.从源码安装&#xff08;比较复杂&#xff0c;但是推荐&#xff09; 1.安装预编译版本 sud…

一文搞懂前端跨页面通信的那些方案们

前端开发逃避不开跨页面通信这项工作&#xff0c;跨页面通信&#xff0c;就好比A页面要和B页面说话&#xff0c;可能只是说一句话&#xff0c;不需要回话&#xff0c;可能是要给一些东西&#xff0c;希望得到回复&#xff0c;并频繁进行沟通&#xff0c;接下来我们说说这些跨页…