美文网首页
Unity头顶UI优化

Unity头顶UI优化

作者: 西章momo | 来源:发表于2019-11-21 17:46 被阅读0次

    前言


    多人同屏在线游戏或者战斗场景复杂的手游,角色或者模型的头顶UI往往非常头疼。举个例子,1个场景中有N个角色,每个角色对应一个UI。我们考虑最简单的情况,UI有一个Text显示名字,一个Image显示血量。2者相互重叠。UGUI在一般情况下会为我们合并同个canvas下相邻深度,材质,纹理相同的drawcall(说的不够严谨,其具体的策略可以去了解,不是本文重点)。但是显然这里我们会得到 2*N个dc。这个消耗是非常巨大的。

    解决思路


    建立一个mesh,创建一个文本的submesh,一个图片的submesh。计算所有需要绘制的text和image 顶点,uv,color,分别保存, 并设置到对应的材质。使用canvasrender渲染mesh。这样子我们仅仅需要2个dc(甚至一个dc),便可以完成渲染。
    这种方法可以大大减少dc的带来cpu的沉重消耗,虽然我们付出了重新计算mesh的 代价,但是从性能上来说是值得的。
    这个方法有些优化方法和不足之处。在之后有时间,我把对应的代码和shader分享的时候,在分析。现在先记录个思路。

    相关文章

      网友评论

          本文标题:Unity头顶UI优化

          本文链接:https://www.haomeiwen.com/subject/ezitwctx.html