// 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);
    }
Example #2
0
    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();
        }
    }
Example #3
0
    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;
 }
Example #5
0
 private Layer getLayer(UILayerId id)
 {
     return(_layers[(int)id]);
 }