UI매니저 기본 기능 구현
This commit is contained in:
@@ -3,10 +3,59 @@ using UnityEngine;
|
||||
|
||||
public class UIManager
|
||||
{
|
||||
int _order = 0;
|
||||
int _order = 10;
|
||||
|
||||
Stack<UI_Popup> _popupStack = new Stack<UI_Popup>();
|
||||
UI_Scene _sceneUI = null;
|
||||
|
||||
public GameObject Root
|
||||
{
|
||||
get
|
||||
{
|
||||
GameObject root = GameObject.Find("@UI_Root");
|
||||
|
||||
if (root == null)
|
||||
{
|
||||
root = new GameObject("@UI_Root");
|
||||
}
|
||||
return root;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void SetCanvas(GameObject go, bool sort = true)
|
||||
{
|
||||
Canvas canvas = Util.GetOrAddComponent<Canvas>(go);
|
||||
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||
canvas.overrideSorting = true;
|
||||
|
||||
if (sort)
|
||||
{
|
||||
canvas.sortingOrder = _order;
|
||||
_order++;
|
||||
}
|
||||
else
|
||||
{
|
||||
canvas.sortingOrder = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public T ShowSceneUI<T>(string name = null) where T : UI_Scene
|
||||
{
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
name = typeof(T).Name;
|
||||
}
|
||||
|
||||
GameObject go = Managers.Resource.Instantiate($"UI/Scene/{name}");
|
||||
T sceneUI = Util.GetOrAddComponent<T>(go);
|
||||
_sceneUI = sceneUI;
|
||||
|
||||
go.transform.SetParent(Root.transform);
|
||||
|
||||
return sceneUI;
|
||||
}
|
||||
|
||||
public T ShowPopupUI<T>(string name = null) where T : UI_Popup
|
||||
{
|
||||
if (string.IsNullOrEmpty(name))
|
||||
@@ -18,6 +67,8 @@ public class UIManager
|
||||
T popup = Util.GetOrAddComponent<T>(go);
|
||||
_popupStack.Push(popup);
|
||||
|
||||
go.transform.SetParent(Root.transform);
|
||||
|
||||
return popup;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user