Unity UGUI5——图集

这篇具有很好参考价值的文章主要介绍了Unity UGUI5——图集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Drawcall

​ 字面理解 DrawCall,就是绘制呼叫的意思,表示 CPU(中央处理器)通知 GPU(图形处理器-显卡)

(一)DrawCall 概念


就是 CPU (处理器)准备好渲染数据(顶点,纹理,法线,Shader 等等)后
告知 GPU(图形处理器-显卡)开始渲染(将命令放入命令缓冲区)的命令

​ 简单来说:一次 DrawCall 就是 CPU 准备好渲染数据通知 GPU 渲染的这个过程

​ 如果游戏中 DrawCall 数量较高会影响 CPU 的效率,最直接的感受就是游戏会卡顿

(二)举例说明

​ 以拷贝文件来进行类比

​ 假设我们创建 10000 个小文件,每个文件大小为1kb,然后把这些文件拷贝到另一个文件夹中

​ 你会发现,即使这些文件加起来不超过 10MB,但是拷贝花费的时间是很长的

​ 如果我们单独创建 1 个 10MB 的文件拷贝到另一个文件夹,基本可以瞬间拷贝完毕

​ 为什么会这样呢?

​ 因为每一个文件赋值动作都需要很多额外的操作,比如分配内存,创建数据等等

​ 这些操作就会带来一些额外的性能开销

​ 简单理解:文件越多额外开销就越大

​ 渲染过程和上面的例子很类似,每次 DrawCall,CPU 都需要准备很多数据发送给 GPU

​ 那么如果 DrawCall 越多那么额外开销就越大,其实 GPU 的渲染效率是很强大的,往往影响渲染效率的

​ 都是因为 CPU 提交命令的速度

​ 如果 DrawCall 太多,CPU 就会把大量时间花在提交 DrawCall 上,造成 CPU 过载,游戏卡顿

(三)如何降低 DrawCall 数量

​ 在 UI 层面上:小图合大图,使用图集

​ 即多个小 DrawCall 变一次大 DrawCall

(四)制作 UI 时降低 DrawCall 的技巧

  1. 注意不同图集之间的层级关系

  2. 注意 Label 的层级关系

二、图集

​ UGUI 和 NGUI 使用上最大的不同是:NGUI 使用前就要打图集,UGUI 可以再之后再打图集

​ 打图集的目的就是减少 DrawCall,提高性能

​ 简单回顾 DrawCall

​ DC 就是 CPU 通知 GPU 进行一次渲染的命令

​ 如果 DC 次数较多会导致游戏卡顿

​ 我们可以通过打图集,将小图合并成大图,将本应 n 次的 DC 变成 1 次 DC 来提高性能

(一)在 Unity 中打开自带的打图集功能

​ 在工程设置面板中打开功能
​ Edit --> Project Setting --> Editor
​ Sprite Packer(精灵包装器,可以通过 Unity 自带图集工具生成图集)

ugui 图集加载,Unity,unity,游戏引擎

  • Disabled:默认设置,不会打包图集

  • Enabled For Builds(Legacy Sprite Packer):Unity 仅在构建时打包图集,在编辑模式下不会打包图集

  • Always Enabled(Legacy Sprite Packer):Unity 在构建时打包图集,在编辑模式下运行前会打包图集

    Legacy Sprite Packer:传统打包模式,相对下面两种模式来说,多了一个设置图片之间的间隔距离

    • Padding Power:选择打包算法在计算打包的精灵之间以及精灵与生成的图集边缘之间的间隔距离,这里的数字代表 2 的 n 次方
  • Enabled For Build:Unity 进在构建时打包图集,在编辑器模式下不会打包

  • Always Enabled:Unity 在构建时打包图集,在编辑模式下运行前会打包图集(常使用)

(三)打图集参数注意

​ 在 Project 窗口中右键选择 Create --> Sprite Atlas,创建图集

ugui 图集加载,Unity,unity,游戏引擎
ugui 图集加载,Unity,unity,游戏引擎

(四)查看 Drawcall

​ 默认有 2 次 Drawcall

ugui 图集加载,Unity,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-618546.html

(五)代码加载

// 加载图集 注意:需要引用命名空间
SpriteAtlas sa = Resources.Load<SpriteAtlas>("MyAlas");
// 从图集中加载指定名字的小图
sa.GetSprite("bk");

到了这里,关于Unity UGUI5——图集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity UI——UGUI

    包名: com.unity.ugui Canvas :   容纳所有UI元素的区域。   一种带有画布组件的游戏对象。   使用EventSystem对象来协助消息系统。 绘制顺序: 按照在 Hierarchy 中显示的顺序绘制,由上到下。 如果两个 UI 元素重叠,则后一个元素将显示在前一个元素之上 渲染模式:(Render Mode)

    2024年04月28日
    浏览(39)
  • Unity基础UGUI学习

    使用 UGUI来开发UI,离不开Canvas组件,所有的 UI 元素,一般都是放在包含 Canvas 组件的节点。 Canvas组件都有那些属性? RenderMode: 渲染模式,大概有三种: Screen Space - Overlay: 覆盖屏幕,Canvas 永远覆盖在场景中的其它所有元素的上层。 Pixel Perfect: UI元素精确到像素对齐,边

    2024年02月01日
    浏览(38)
  • Unity使用UGUI划线

    Unity 里面虽然提供Linerender绘制线条,但是只能在3D空间划线,有时候需要在UI上绘制指定的线条,柱状图,饼状图等就可以采用下面的方式了。   创建DrawLine,继承MaskableGraphic类,重写OnPopulateMesh(VertexHelper vh)方法,重新使用mesh绘制线条。添加网格顶点实现画线。

    2024年02月08日
    浏览(32)
  • Unity UGUI 滚动列表

    效果: 当前用的 Unity 版本为 5.6.7f1,场景分辨率为 1440 * 2560,下面的案例中,都是以这个分辨率为标准,如果你设置的屏幕大小和我的不一样,那么在后面的操作中,参数可能会不一样。 添加完成后,场景界面如下    如下 将 Content 的大小调整一下 在场景中的显示如下 将

    2024年02月02日
    浏览(43)
  • unity UGUI 九宫格 拉伸

    1.sprite Mode :选择 Multiple ,点击 Apply,如下图:  2.点击 sprite Editor,调节合适的值即可。

    2024年02月12日
    浏览(35)
  • unity -- UGUI插件 LoopScrollRect

    目录 一.简介 二.注意事项 1. 预制体设计: 2. 性能问题: 3. 数据更新: 4. 交互体验: 5. 版本兼容性: 6. 项目内容变化: 7. 异步加载: 8. 点击事件处理: 9. 动态布局: 10. 多语言支持: 三.使用示例  1.LoopScrollRect常用功能示例: 2.动态添加数据 四:下载插件 一.简介 LoopS

    2024年02月16日
    浏览(38)
  • Unity DrawCall优化 - UGUI优化

    一、DrawCall是什么? Unity 展示出来的画面,是通过GPU绘制出来,才显示出来的。 在场景中,一个场景内的物体,分几个批次提交给显卡来绘制,就是几个DrawCall。 在Unity中,两个地方可以查看DrawCall, 1.在Game视口,的Stats,点击一下打开一个窗口,Batches:后面的就是Drawcall值。

    2024年03月13日
    浏览(35)
  • Unity-UGUI优化策略

    界面出栈规则: 界面目录导航、策划界面回退需求造成界面套娃问题,夹带一系列层级问题,应该和策划进行友好沟通,避免界面不合理的出栈入栈规则 overdraw: 尽量减少同屏 半透明物体渲染 Unity 之 UGUI优化(Optimizing UGUI)—当最专业的拖拖拽拽

    2024年02月13日
    浏览(42)
  • unity UGUI系统梳理 -交互组件

    unity 中的交互组件可用于处理交互,例如鼠标或触摸事件以及使用键盘或控制器进行的交互 Button详解 Background:背景图片,控制toggle组件的背景颜色改变,从而展示此物体是否被选中的效果; Checkmark:就是我们界面看到的对号勾选框,对号图片可以替换,也可以删除不用。

    2024年02月17日
    浏览(38)
  • Unity UGUI的DrawCall优化

    Unity UGUI是一种强大的用户界面设计工具,它可以帮助开发者快速创建各种界面元素,从按钮和文本到滑块和面板等。然而,在使用UGUI时,一个常见的性能瓶颈就是DrawCall过多导致的性能下降。在本文中,我们将深入探讨UGUI的DrawCall优化方法,并给出对应的代码实现。 什么是

    2024年02月22日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包