UI Manager - Maxodie/BattriKeepel2 GitHub Wiki
it is mainly the ui creation convention tuto
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);
// 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
}