private UILayerBase CreateLayer(UILayerDBEntry layerDBEntry) { var layerPrefab = layerDBEntry.LoadPrefab <UILayerBase>(); if (layerPrefab == null) { layerPrefab = defaultLayerSrc; } var layer = layerPrefab.Clone(transform); layer.Init(layerDBEntry); _layers.Add(layerDBEntry, layer); transform.SetChildrenSiblingIndex(c => c.GetComponent <Canvas>().sortingOrder); return(layer); }
private UILayerBase GetOrCreateLayer(UILayerDBEntry layerDBEntry) { if (layerDBEntry == null) { return(GetOrCreateLayer(uiDefaults.mainLayer)); } if (_layers.ContainsKey(layerDBEntry)) { return(_layers[layerDBEntry]); } var existedButNotCached = GetComponentsInChildren <UILayerBase>().Where(l => l.layerDBEntry == layerDBEntry).First(); if (existedButNotCached != null) { _layers.AddOrSet(layerDBEntry, existedButNotCached); return(existedButNotCached); } return(CreateLayer(layerDBEntry)); }
public void Init(UILayerDBEntry layerDBEntry) { _layerDBEntry = layerDBEntry; name = layerDBEntry.name; canvas.sortingOrder = layerDBEntry.sortOrder; }