fix UI and destroy radial menu

This commit is contained in:
2023-11-17 15:12:15 +02:00
parent cb2eba5731
commit 725081c2cd
3 changed files with 120 additions and 47 deletions
+7 -2
View File
@@ -11,9 +11,11 @@ public class RadialMenuItem : MonoBehaviour
private Button _radialMenuItemPrefab;
private Action<RadialMenuActions> _menuButtonClick=null;
private Dictionary<RadialMenuActions, RadialMenuActionDescription> _actions;
private RadialMenuItem _popupMenu;
public void ShowButtons(Dictionary<RadialMenuActions, RadialMenuActionDescription> actions, Action<RadialMenuActions> menuButtonClick)
public void ShowButtons(RadialMenuItem popupMenu, Dictionary<RadialMenuActions, RadialMenuActionDescription> actions, Action<RadialMenuActions> menuButtonClick)
{
_popupMenu = popupMenu;
_actions = actions;
_menuButtonClick = menuButtonClick;
for (int buttonsCount = 0; buttonsCount < actions.Count; buttonsCount++)
@@ -40,20 +42,23 @@ public class RadialMenuItem : MonoBehaviour
{
b.onClick.AddListener(() =>
{
CloseDialog();
Hide();
_menuButtonClick?.Invoke(_actions.ElementAt(buttonNumber).Key);
CloseDialog();
});
}
private void CloseDialog()
{
UIManager.Instance.Unfreeze();
Destroy(_popupMenu);
Destroy(this);
}
private void Hide()
{
gameObject.SetActive(false);
Destroy(gameObject);
}
}
+1 -1
View File
@@ -46,7 +46,7 @@ public class UIManager : MonoBehaviour
var popupMenu = Instantiate(_radialMenuItemPrefab);
popupMenu.transform.transform.SetParent(transform, false);
popupMenu.transform.position = Input.mousePosition;
popupMenu.ShowButtons(actions,itemsMenuCallback);
popupMenu.ShowButtons(popupMenu, actions,itemsMenuCallback);
}
public void Freeze()