// instantiate a new UI object with a given prefab id, onto a specified layer public UIObject CreateNewUIObject(string uiPrefabId, UILayerId layerId) { if (_activeUI.ContainsKey(uiPrefabId)) { CustomLogger.Error(nameof(UIManager), $"Already contains active UI with prefab Id {uiPrefabId}!"); return(null); } if (!_uiLayers.TryGetValue(layerId, out UILayer layer)) { CustomLogger.Error(nameof(UIManager), $"Layer Id {layerId} not found!"); return(null); } GameObject obj = AssetManager.Instance.GetAsset(uiPrefabId); if (obj == null) { CustomLogger.Error(nameof(UIManager), $"Could not retrieve prefab for id {uiPrefabId}!"); return(null); } UIObject uiObject = obj.GetComponent <UIObject>(); if (uiObject == null) { CustomLogger.Error(nameof(UIManager), $"Prefab {uiPrefabId} did not contain type {nameof(UIObject)}!"); return(null); } UILayer parent = _uiLayers[layerId]; UIObject instancedUIObject = Instantiate(uiObject, _uiLayers[layerId].transform); UIObjectEntry newEntry = new UIObjectEntry(layerId, instancedUIObject); _activeUI.Add(uiPrefabId, newEntry); CustomLogger.Log(nameof(UIManager), $"Creating ui object with prefab id {uiPrefabId}"); return(instancedUIObject); }
public void hideAll(UILayerId layerId) { var layer = getLayer(layerId); for (int i = layer.list.Count - 1; i >= 0; i--) { var ui = layer.list[i]; ui.hide(); } }
public UIBase find(string name) { UILayerId id = UILayerId.Hud; if (!_name2layerDic.TryGetValue(name, out id)) { return(null); } var layer = _layers[(int)id]; return(layer.find(name)); }
public UIObjectEntry(UILayerId layerId, UIObject uiObject) { LayerId = layerId; UIObject = uiObject; }
private Layer getLayer(UILayerId id) { return(_layers[(int)id]); }