Improve logic of container item UI add remove button
This commit is contained in:
@@ -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++)
|
||||
{
|
||||
|
||||
+19
-11
@@ -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)
|
||||
+3
-1
@@ -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)
|
||||
{
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user