Exemplo n.º 1
0
    public void ClearPanels()
    {
        if (Panels.Count <= 1)
        {
            Debug.Log("Already at base panel");
            return;
        }
        var oldPanel = Panels[Panels.Count - 1];

        Panels.RemoveRange(1, Panels.Count - 1);
        var newPanel = Panels[Panels.Count - 1];

        PanelChanged?.Invoke(this, new PanelChangedEventArgs {
            OldPanel = oldPanel, NewPanel = newPanel, ChangeType = PanelChangeType.CLEAR
        });
    }
Exemplo n.º 2
0
    public void PopPanel()
    {
        if (Panels.Count <= 1)
        {
            //Debug.LogError("Cannot pop, must be showing at least one panel");
            return;
        }
        var oldPanel = Panels[Panels.Count - 1];

        oldPanel.gameObject.SetActive(false);
        Panels.RemoveAt(Panels.Count - 1);
        var newPanel = Panels[Panels.Count - 1];

        newPanel.gameObject.SetActive(true);
        PanelChanged?.Invoke(this, new PanelChangedEventArgs {
            OldPanel = oldPanel, NewPanel = newPanel, ChangeType = PanelChangeType.POP
        });
    }
Exemplo n.º 3
0
    public void PushPanel <T>(object args = null) where T : Panel
    {
        var panel = GetComponentInChildren <T>(includeInactive: true);

        if (panel == null)
        {
            Debug.LogError($"No panel of type {typeof(T)} exists");
            return;
        }
        var oldPanel = Panels[Panels.Count - 1];

        oldPanel.gameObject.SetActive(false);
        Panels.Add(panel);
        var newPanel = Panels[Panels.Count - 1];

        newPanel.gameObject.SetActive(true);
        PanelChanged?.Invoke(this, new PanelChangedEventArgs {
            OldPanel = oldPanel, NewPanel = newPanel, ChangeType = PanelChangeType.PUSH
        });
        newPanel.Init(args);
    }
Exemplo n.º 4
0
 public void OnPanelChanged(SideBarEventArgs e)
 {
     PanelChanged?.Invoke(this, e);
 }