コード例 #1
0
    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
    }