运行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."
点开代码看了一下NGUI的源码,是这样写的:
public void CheckLayer ()
{
if (panel != null && panel.gameObject.layer != gameObject.layer)
{
Debug.LogWarning("You can't place widgets on a layer different than the UIPanel that manages them.\n" +
"If you want to move widgets to a different layer, parent them to a new panel instead.", this);
gameObject.layer = panel.gameObject.layer;
}
}
看了一下很简单, 就是检查一下层号是否相同,如果不同,报个警告,并强制同层。
解决办法:
1,如果背包里的物品都是预制,那么保证预制的层(Layer),与背包一致。
2,也可以在代码里用 the_gameobj.layer = n ; (n为int) 来动态的保持层一致性。