Improve logic of container item UI add remove button

This commit is contained in:
Vova
2023-12-18 11:48:27 +02:00
parent f6e0b24d81
commit 554c147a69
10 changed files with 267 additions and 23 deletions
+1 -2
View File
@@ -13,9 +13,8 @@ public class RadialMenuItem : MonoBehaviour
UniTaskCompletionSource<RadialMenuActions> tcs = new UniTaskCompletionSource<RadialMenuActions>();
public UniTask<RadialMenuActions> ShowButtons(RadialMenuItem popupMenu, Dictionary<RadialMenuActions, RadialMenuActionDescription> actions)
public UniTask<RadialMenuActions> ShowButtons(Dictionary<RadialMenuActions, RadialMenuActionDescription> actions)
{
_actions = actions;
for (int buttonsCount = 0; buttonsCount < actions.Count; buttonsCount++)
{
@@ -1,6 +1,6 @@
using UnityEngine;
public class ContainerItemsUI : MonoBehaviour
public class UIContainer : MonoBehaviour
{
[SerializeField]
@@ -40,20 +40,28 @@ public class ContainerItemsUI : MonoBehaviour
private void OnItemsChange(object sender, System.EventArgs e)
{
if (_playerContainer.IsSalebleItems())
{
ClearObject();
ClearObject();
var playerItemsList = _playerContainer.GetItems();
for (int count = 0; count < playerItemsList.Count; count++)
{
var itemUI = Instantiate(_itemUITemplate, _itemsList);
itemUI.gameObject.SetActive(true);
var item = itemUI.GetComponent<UIContainerItem>();
item.SetItem((SellableItemSO)playerItemsList[count]);
RemoveButton(playerItemsList[count], item);
var playerItemsList = _playerContainer.GetItems();
for (int count = 0; count < playerItemsList.Count; count++)
{
var itemUI = Instantiate(_itemUITemplate, _itemsList);
itemUI.gameObject.SetActive(true);
itemUI.GetComponent<ItemDescriptionUI>().SetItem((SellableItemSO)playerItemsList[count]);
}
}
}
private void RemoveButton(BaseItemSO item, UIContainerItem UIItem)
{
UIItem._removeButton.onClick.AddListener(() =>
{
_playerContainer.Remove(item);
});
}
private void ClearObject()
{
foreach (Transform child in _itemsList)
@@ -2,7 +2,7 @@ using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class ItemDescriptionUI : MonoBehaviour
public class UIContainerItem : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI _name;
@@ -10,6 +10,8 @@ public class ItemDescriptionUI : MonoBehaviour
private TextMeshProUGUI _price;
[SerializeField]
private Image _icon;
[SerializeField]
public Button _removeButton;
public void SetItem(SellableItemSO item)
{
+1 -1
View File
@@ -38,7 +38,7 @@ public class UISystem : MonoBehaviour
_popupMenu = Instantiate(_radialMenuItemPrefab);
_popupMenu.transform.transform.SetParent(transform, false);
_popupMenu.transform.position = Input.mousePosition;
return await _popupMenu.ShowButtons(_popupMenu, actions);
return await _popupMenu.ShowButtons(actions);
}
public void ClosePopupMenu()