今天用NGUI制作一个界面,运行起来之后报了一堆警告:
You can't place widgets on a layer different than the UIPanel that manages them.
If you want to move widgets to a different layer, parent them to a new panel instead.
意思是ui里有对象的Layer与父对象的不一致,unity需要先把所有的layer转为一致才会渲染。大量的warning影响untiy性能,导致ui渲染变慢。在制作ui时要把他们都指定为同一layer,否则界面大量ui显示时在控制台里会产生大量warning。
官方论坛的解释是:
It means the widget you've added is on a different game object layer than the parent panel. It force-changes the layer for you as it gives you the warning, but I suggest using NGUITools.AddChild / NGUITools.AddWidget functions to add your widgets rather than doing so manually via GameObject.Instantiate / AddComponent.