fix UI and destroy radial menu
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user