名字片含有文字时DrawCall过高的问题

q1.png


q2.png

如上图所示,没有加入两个文本框的情况下DrawCall是11,而一旦有文字,就直接暴涨到410,是因为文字没法动态合批吗?求解决办法,多谢。附件是导出的UI工程,我用的Unity版本是5.5.2f1,测试代码为:
        UIPackage.AddPackage("UI/UIStateBar");
        for (int i = 0; i < 100; i++)
        {
            view = UIPackage.CreateObject("UIStateBar", "UIStateBar").asCom;
            if (view != null)
            {
                GRoot.inst.AddChild(view);
                int x = i % 15;
                int y =(int)( i / 15.0);
                view.SetXY(x * 30, y * 20);
            }
        }
已邀请:

谷主

赞同来自:

http://fairygui.com/guide/unity/drawcall.html
 
没开fairyBatching。
GComponent layer = new GComponent();
layer.fairyBatching = true;
GRoot.inst.AddChild(layer);

//将你的view改成add到这个layer。
layer.AddChild(view);

klince

赞同来自:

211111.png

试了下,还剩下144。我发现直接在场景里复制几份出来的话,DrawCall在第一次会涨一些,之后就是不变的,都会被动态合掉,如下图:

333333333333.png

 
是因为从代码里生成的会有问题么?
 
对了,我Unity版本现在用的是4.7.2(项目原因)

谷主

赞同来自:

你都重叠在一起,就是这个效果了。分散一点就又不同了。比如A和B重叠了,你总不能让他们里面的内容显示成互相交错吧,所以这时就无法调整顺序合并了。

要回复问题请先登录注册