private UILayer ShowLayer(UILayer layer) { #if USE_XLUA return(InvokeXLua("ShowLayer", new object[] { layer })[0] as UILayer); #else if (layer == null) { return(null); } UILayer lastLayer = null; List <UILayer> uiLayerTemps = layers[layer.position]; int layerCount = uiLayerTemps.Count; // disable layer if (layerCount > 0) { lastLayer = uiLayerTemps[layerCount - 1]; lastLayer.DisableLayer(); } if (layer.position == UILayer.Position.Middle) { layerMiniMask.SetActive(true); } layer.SetLayerIndex(layerCount); uiLayerTemps.Add(layer); layer.EnableLayer(); // animation switch (layer.layerAnimType) { case UILayer.AnimType.Popup: layer.PlayAnimation(UILayer.AnimKey.OpenPopup); break; case UILayer.AnimType.None: if (layer.hideBehindLayers) { if (lastLayer != null) { lastLayer.gameObject.SetActive(false); } } break; } return(layer); #endif }