radial menu work

This commit is contained in:
2023-11-17 15:02:33 +02:00
parent 37da3bd61a
commit cb2eba5731
39 changed files with 3292 additions and 3050 deletions
+7 -6
View File
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@@ -8,10 +9,10 @@ public class RadialMenuItem : MonoBehaviour
{
[SerializeField]
private Button _radialMenuItemPrefab;
private Action<RadialMenuActionSO> _menuButtonClick=null;
List<RadialMenuActionSO> _actions;
private Action<RadialMenuActions> _menuButtonClick=null;
private Dictionary<RadialMenuActions, RadialMenuActionDescription> _actions;
public void ShowButtons(List<RadialMenuActionSO> actions, Action<RadialMenuActionSO> menuButtonClick)
public void ShowButtons(Dictionary<RadialMenuActions, RadialMenuActionDescription> actions, Action<RadialMenuActions> menuButtonClick)
{
_actions = actions;
_menuButtonClick = menuButtonClick;
@@ -28,19 +29,19 @@ public class RadialMenuItem : MonoBehaviour
var textMeshPro = button.GetComponentInChildren<TextMeshProUGUI>();
if (textMeshPro != null)
{
textMeshPro.text = actions[buttonsCount].ActionName;
textMeshPro.text = actions.ElementAt(buttonsCount).Value.Description;
}
AddEvent(button, buttonsCount);
}
}
void AddEvent(Button b, int i)
void AddEvent(Button b, int buttonNumber)
{
b.onClick.AddListener(() =>
{
Hide();
_menuButtonClick?.Invoke(_actions[i]);
_menuButtonClick?.Invoke(_actions.ElementAt(buttonNumber).Key);
CloseDialog();
});
}
+1 -1
View File
@@ -41,7 +41,7 @@ public class UIManager : MonoBehaviour
jobSelector.ShowJobSelectionDialog(title, onCancel, onConfirm);
}
public void ShowItemsMenu(List<RadialMenuActionSO> actions,Action<RadialMenuActionSO> itemsMenuCallback)
public void ShowItemsMenu(Dictionary<RadialMenuActions, RadialMenuActionDescription> actions,Action<RadialMenuActions> itemsMenuCallback)
{
var popupMenu = Instantiate(_radialMenuItemPrefab);
popupMenu.transform.transform.SetParent(transform, false);