---
title: "UGUI 动态加载Item DrawCall问题"
author: "石心.Yong"
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/uwa-answer-ugui-dynamic-item-draw-call/
type: note
content_role: source
source_type: "source"
visibility: public
id_stability: rename-stable
source_path: "10-计算机、信息技术与工程/05-游戏图形与运行时/我的UWA问答/2021-05-11 - UGUI 动态加载Item DrawCall问题.md"
content_hash: ef5dab35997859040ac3c097d56f1aeac7eaa8d06f4db6a6534f0afdecf3f3f5
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
# UGUI 动态加载Item DrawCall问题

> **note · 我的 UWA 问答**
> 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者；回答保留当时语境，技术结论可能受 Unity 版本、平台和项目条件限制。

## 问题

![QQ图片20210510212702.png](/media/2271f6fa9582741857ea.png)

关于动态加载Item,这样是不是算是穿插了，如果有大量的Item那得多少DrawCall,我感觉我走入了误区，求大佬解答下，怎么学习这方面，好迷糊，还是说实际工作中，都不去管这种？

- 提问者：甲乙丙是新手
- 提问时间：2021-05-11 05:29:20

## 我的回答

共享相同材质的网格，满足其他合批条件，以相邻顺序渲染即可合批，减少Drawcall。所以合批的关键，在于对使用相同材质的物体，控制渲染顺序。

合批条件和优化方案有以下资料:

https://blog.uwa4d.com/archives/optimzation_cpu.html

https://docs.unity3d.com/Manual/DrawCallBatching.html

Unity中影响渲染顺序的因素：https://zhuanlan.zhihu.com/p/55762351

不同的资源控制渲染顺序的方式不同，如MeshRenderer，可以设置材质的RenderQueue；ParticleSystem可以设置Order In Layer和Sorting Layer等。

UGUI元素的渲染顺序是UGUI这个插件本身决定的，我们要做的是理解UGUI对元素渲染的排序方式，尽可能使相同材质的UI元素以相邻顺序渲染。具体的关键点譬如：避免同一层的UI元素互相重叠，UGUI是一层一层绘制的，保证相同材质的UI作为同一层来绘制。如题主项目中的Img都放在同一层，Txt都放在第二层。如果两个Img发生叠层，就会有一个Img是作为第二层来绘制的，导致Txt的绘制与Img的绘制互相穿插，就会增加DrawCall

- 回答时间：2021-05-11 06:31:19
- 最后更新：2021-05-11 18:20:05
- 采纳状态：未采纳

## 来源与关系

- 上位集合：[我的 UWA 问答](https://www.pystone.net/notes/my-uwa-answers/)
- UWA 标签：UGUI、渲染模块
- 原始问题：[UGUI 动态加载Item DrawCall问题](https://answer.uwa4d.com/question/609935306bb31032f97915b2)
- 源页最后更新：2021-05-11 06:31:19
