public void OpenUnit<T>(T unitPanel) where T : UIUnitPanel, IUIControlHost
{
foreach(var unit in _OpenedPanelList)
{
if(unit.TryGetComponent(out IUIControlHost host))
host.OnLossControl();
CloseUnit(unit);
}
unitPanel.OnEnabled();
unitPanel.OnGainControl();
_OpenedPanelList.Add(unitPanel);
}


public class UIUnitPanelWithControl : UIUnitPanel, IUIControlHost{}

public void OpenUnit<T>(T unitPanel) where T : UIUnitPanel
{
foreach(var unit in _OpenedPanelList)
{
if(unit is UIUnitPanelWithControl)
unit.OnLossControl();
CloseUnit(unit);
}
unitPanel.OnEnabled();
unitPanel.OnGainControl();
_OpenedPanelList.Add(unitPanel);
}

UI ํ”„๋ ˆ์ž„์›Œํฌ์— ๋ฌธ์ œ ์žˆ์–ด๊ฐ€์ง€๊ณ  ์†๋ณด๋Š” ์ค‘์ธ๋ฐ

์œ„๋ž‘ ์•„๋ž˜๋ž‘ ๋น„์šฉ์ฐจ์ด ์žˆ๋‚˜? ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ์ทจํ–ฅ ์ฐจ์ธ๊ฐ€


_OpenedPanelList ์ž๋ฃŒํ˜•์€ List<UIUnitPanel> ์ž„