UI Manager - Maxodie/BattriKeepel2 GitHub Wiki

UI Manager

it is mainly the ui creation convention tuto

BASIC STUFF :

The UIManager class is set as a variable in the GameManager abstract class:

The gameManager abstract class require to override the function

protected override void OnUIManagerCreated() {}

the OnUIManagerCreated() function is called on the Awake
You are supposed to Generate the first game UI in this function.

All the Generated data is must be a child of an SO_UIData.
You can use the function

public static UIDataResult GenerateUIData(SO_UIData data, Transform parentTr);

EXEMPLE :

// In MainMenuManager.cs
public class MainMenuManager : GameManager
{
    [SerializeField] Transform m_mainMenuCanvasTr;
    [SerializeFiled] SO_UIBossMenu m_uiBossMenu;

    protected override void OnUIManagerCreated()
    {
        UIManager.GenerateUIData(m_uiBossMenu, m_mainMenuCanvasTr);
    }
}
// In SO_UIBossMenu.cs
[CreateAssetMenu(fileName = "BossMenu", menuName = "UIManager/BossMenu")]
public class SO_UIBossMenu : SO_UIData
{
    public Button bossSelectionNavigation;
    public UIBossMenu menuBasePrefab;

    public override UIDataResult Init(Transform spawnParentTr)
    {
        UIBossMenu bossMenu = Object.Instantiate(menuBasePrefab, spawnParentTr);
        bossMenu.Init(this);
        return new(bossMenu.gameObject);
    }
}
// In UIBossMenu.cs
public class UIBossMenu : UIMenuBase
{
    public void Init(SO_UIBossMenu data)
    {
        // ... setup menu
    }
⚠️ **GitHub.com Fallback** ⚠️