关于unity中的ugui优化,你可能遇到这些问题

author author     2023-03-09     293

关键词:

参考技术A

via @ https://blog.uwa4d.com/archives/QA_UGUI-1.html

界面制作
网格重建
界面切换
加载相关
字体

Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准和特别要求呢?

Q2:在UI界面中,用Canvas还是用RectTransform做根节点更好?哪种方法效率更高?

Q3:UWA性能检测报告中的Shared UI Mesh表示什么呢?

Q4:在使用NGUI时,我们通常会将很多小图打成一个大的图集,以优化内存和Draw Call。而在UGUI时代,UI所使用的Image必须是Sprite;Unity提供了SpritePacker。 它的工作流程和UGUI Atlas Paker有较大的差别。在Unity Asset中,我们压根看不到图集的存在。 问题是:
1. SpritePacker大概的工作机制是什么样的?

2. 如果Sprite没有打包成AssetBundle,直接在GameObject上引用,那么在Build时Unity会将分散的Sprite拼接在一起么?如果没有拼接,那SpritePacker是不是只会优化Draw Call,内存占用上和不用SpritePacker的分离图效果一样?

3. 如果将Sprite打成AssetBundle,AssetBundle中的资源是分散的Sprite吗?如果不是,不同的AssetBundle中引用了两张Sprite,这两张Sprite恰好用SpritePacker拼在了一起,是不是就会存在两份拼接的Sprite集?

4. 如果想使用NGUI Atlas Packer的工作流程,该如何去实现?

Q5:在Unity 5.x版本下,我们在用UGUI的过程中发现它把图集都打进了包里,这样就不能自动更新了,请问图集怎么做自动更新呢?

Q6:ScrollRect在滚动的时候,会产生Canvas.SendwillRenderCanvases,有办法消除吗?

Q1:我在UGUI里更改了Image的Color属性,那么Canvas是否会重建?我只想借用它的Color做Animation里的变化量。

Q2:Unity自带的UI Shader处理颜色时,改_Color属性不会触发顶点重建吗?

Q3:能否就UGUI Batch提出一些建议呢?是否有一些Batch的规则?

Q4:我用的是UGUI Canvas,Unity 5.3.4版本,请问如何查看每次Rebuild Batch影响的顶点数, Memory Profiler是个办法但是不好定位。

Q5:动静分离或者多Canvas带来性能提升的理论基础是什么呢?如果静态部分不变动,整个Canvas就不刷新了?

Q6:UWA建议“尽可能将静态UI元素和频繁变化的动态UI元素分开,存放于不同的Panel下。同时,对于不同频率的动态元素也建议存放于不同的Panel中。”那么请问,如果把特效放在Panel里面,需要把特效拆到动态的里面吗?

Q7:多人同屏的时候,人物移动会使得头顶上的名字Mesh重组,从而导致较为严重的卡顿,请问一下是否有优化的办法?

Q1:游戏中出现UI界面重叠,该怎么处理较好?比如当前有一个全屏显示的UI界面,点其中一个按钮会再起一个全屏界面,并把第一个UI界面盖住。我现在的做法是把被覆盖的界面 SetActive(False),但发现后续 SetActive(True) 的时候会有 GC.Alloc 产生。这种情况下,希望既降低 Batches 又降低 GC Alloc 的话,有什么推荐的方案吗?

Q2:如图,我们在UI打开或者移动到某处的时候经常会观测到CPU上的冲激,经过进一步观察发现是因为Instantiate产生了大量的GC。想请问下Instantiate是否应该产生GC呢?我们能否通过资源制作上的调整来避免这样的GC呢?如下图,因为一次性产生若干MB的GC在直观感受上还是很可观的。

Q1:UGUI的图集操作中我们有这么一个问题,加载完一张图集后,使用这个方式获取其中一张图的信息:assetBundle.Load (subFile, typeof (Sprite)) as Sprite; 这样会复制出一个新贴图(图集中的子图),不知道有什么办法可以不用复制新的子图,而是直接使用图集资源 。

Q2:加载UI预制的时候,如果把特效放到预制里,会导致加载非常耗时。怎么优化这个加载时间呢?

Q3:我有一个UI预设,它使用了一个图集, 我在打包的时候把图集和UI一起打成了AssetBundle。我在加载生成了GameObject后立刻卸载了AssetBundle对象, 但是当我后面再销毁GameObject的时候发现图集依然存在,这是什么情况呢?

Q1:我在用Profiler真机查看iPhone App时,发现第一次打开某些UI时,Font.CacheFontForText占用时间超过2s,这块主要是由什么影响的?若iPhone5在这个接口消耗2s多,是不是问题很大?这个消耗和已经生成的RenderTexture的大小有关吗?

关于unity中的ngui和ugui

用Unity开发2D游戏,有三套关系1.GUI:Unity本身的对象2.NGUI:以前在Unity中广泛来做2D的,是第三方的包,需要安装3.UGUI:Unity5.X后,Unity找到NGUI的作者,开发了UGUI,变成内置于Unity中的包,官方主推所有的元素都在Unity的UI工具栏&nb... 查看详情

如何用unity3d对游戏运行性能进行优化

...等情况,严重影响游戏体验。对于游戏来讲这是致命的。关于CPU优化大家可以从以下几方面入手:1、资源优化,比如合理规划图集, 查看详情

关于unity中的ugui的屏幕自适应(多分配率适配)

参考技术A最近在学习UGUI,在学习UGUI当中的屏幕自适应的时候出现了问题,搞的我很头疼,于是在网上查了很多资料,花了一晚上的时间,其实当时还是没想明白,但夜里突然失眠了,于是想了想昨天晚上看的资料,突然灵光一... 查看详情

[unity优化]unity中的批处理优化与gpuinstancing

...我们将讨论两种优化技术,它们可以帮助您减少Unity游戏中的DrawCall数量以提高整体性能:批处理和GPUInstancing。开发者在日常工作中遇到的最常见的问题之一是性能不足,这是由于CPU和GPU的运行能力不足。一些游戏可以运行在PC... 查看详情

unity3d官方移动游戏优化指南9.用户界面

​​UnityUI​​ (UGUI)常常是性能问题的来源。Canvas组件生成和更新UI组件的网格并向GPU发出绘制调用。它的运行开销很大,因此,在使用UGUI时,请注意以下因素。划分画布如果是包含成千上万个元素的大型画布,更新单个UI元... 查看详情

unity性能优化丨gc攻略大全

哈喽大家好,你的橙哥突然出现~本系列博客地址:传送门一、GC是Unity管理内存的一部分游戏运行时使用内存来存储数据,当这些数据不再被使用时,存储这些数据的内存被释放以便于之后这些内存可以被复用。垃圾(Garbage)是... 查看详情

如何快速优化手游性能问题?从ugui优化说起

WeTest导读 本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法。 在之前的文章《手游内存占用过高?如何快速定位手游内存问题》中... 查看详情

unity新手求助,关于多个模型共享骨骼动画的问题

参考技术A这个可能是模型的transform历史记录没有归零。编辑制作模型时,如果用了缩放和旋转,这些信息会被记录。要避免输出时发生拉伸等问题,编辑好的模型需要归零。3dsmax的做法是对模型添加xform修改器,这个Xform可以在... 查看详情

unity的ugui的mask(遮罩)的使用

之前我写过一篇博客关于UGUI的优化其中提到了Mask的使用会增加性能的消耗但是在一些情况下使用这个会有奇效比如小地图(Minimap)的开发这篇博客介绍一下UGUI中的Mask的使用方法很简单的首先创建一个Image给他添加上Mask... 查看详情

for程序员:这些你可能遇到的职场难题,我们帮你整理好了答案

...感问题,以及困扰着相当一部分人的职场焦虑。今天这篇关于“职场迷茫”的不完全解决手册献给个推的主要用户——广大开发者们。也许你刚刚毕业,在“没有选择”或“太多选择”面前感到恐慌,也许从业两三年之后的你失... 查看详情

unity---遇到的一些坑和小知识

目录1、在UGUI中的物体顺时针旋转Z是负的。(和正常3D中是相反的)1、在UGUI中的物体顺时针旋转Z是负的。(和正常3D中是相反的)在UGUI中,把视角切换为3D,聚焦Camera。在右上角点击Z正方向,会发现界面是向着UI的反方向,表示Camera... 查看详情

html5关于contenteditable介绍

HTML5已经从一个新的名词变成了我们在项目中经常用到的东西了,今天我们就来分析一番其中contenteditable。contenteditable是HTML5的一个新的特性,有可能你也了解过一些,但是因为你没在项目中遇到过,只知道contenteditable="true"可以... 查看详情

unity学习笔记——关于dropdown的学习

今天组长让我写一个界面,其中用到了下拉条,我的印象还停留在以前的NGUI有现成的组件,但是uGUI没有的那阶段,组长跟我说uGUI现在也有了,研究了一下,发现real方便哦,今天就来简单说一下用法吧。Dropdow用法也就是点开会... 查看详情

unity的这些坑你遇到了吗?

...了苦逼的程序员们少加点班,分享一些在项目开发过程中遇到的一些坑我使用的环境是unity5.6.3p3 版本管理是git(1)虽然大家都知道unity用的序列化方式是yaml(读音90%的会读错~~!),但是unity基于yaml有三种方式,文本方式二... 查看详情

关于优化,及项目中遇到的问题-02(代码片段)

excel如果是常规格式,系统则会根据单元格中的内容,自动判断数据类型。例如单元格里的内容是“2011-10-17”,Excel会自动将其识别为日期类型。如果是文本格式,Excel只会将其作为字符串来处理。所以在导入时,获取Cell... 查看详情

unity3d官方移动游戏优化指南9.用户界面

UnityUI (UGUI)常常是性能问题的来源。Canvas组件生成和更新UI组件的网格并向GPU发出绘制调用。它的运行开销很大,因此,在使用UGUI时,请注意以下因素。划分画布如果是包含成千上万个元素的大型画布,更新单个U... 查看详情

unity3d官方移动游戏优化指南9.用户界面

UnityUI (UGUI)常常是性能问题的来源。Canvas组件生成和更新UI组件的网格并向GPU发出绘制调用。它的运行开销很大,因此,在使用UGUI时,请注意以下因素。划分画布如果是包含成千上万个元素的大型画布,更新单个U... 查看详情

查询优化提示

...时间】:2012-08-2223:39:20【问题描述】:我一直在寻找一些关于SQLServer2008中查询优化的一般提示和技巧。我遇到了以下情况,我很不确定使用视图/触发器的后果是什么尝试用原始源表替换视图如果可能,不应使用触发器,将触发... 查看详情