update UI. add more developed feature into UI
This commit is contained in:
@@ -3,6 +3,7 @@ using BrewMonster.Common;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts;
|
||||
using BrewMonster.Scripts.UI;
|
||||
using BrewMonster.Scripts.Task.UI;
|
||||
using CSNetwork.GPDataType;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using PerfectWorld.Scripts.Managers;
|
||||
@@ -16,15 +17,16 @@ using UnityEngine.UI;
|
||||
|
||||
namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
public class EC_InventoryUI : MonoBehaviour
|
||||
public class EC_InventoryUI : MonoBehaviour, IRefreshLayout
|
||||
{
|
||||
|
||||
[Header("Pack Buttons (assign in Inspector)")]
|
||||
[SerializeField] private List<Button> inventoryPackButtons = new List<Button>(); // byPackage: 0
|
||||
[SerializeField] private List<Button> equipmentPackButtons = new List<Button>(); // byPackage: 1
|
||||
[SerializeField] private List<Button> fashionPackButtons = new List<Button>(); // byPackage: 3
|
||||
|
||||
[Header("Detail Panel (assign in Inspector)")]
|
||||
[SerializeField] private GameObject detailPanelRoot;
|
||||
[SerializeField] private ItemInfo detailPanelRoot;
|
||||
[SerializeField] private Vector2 detailPanelOffset = new Vector2(20f, 0f);
|
||||
[SerializeField] private bool hideDetailOnStart = true;
|
||||
[SerializeField] private EC_UIUtility.TextOutlet nameText;
|
||||
@@ -127,6 +129,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
// Ensure cached values are pushed when the UI is enabled
|
||||
ApplyPendingCurrency();
|
||||
ShowDetailPanel(false);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -325,9 +328,9 @@ namespace BrewMonster.Scripts.Managers
|
||||
currentSelectedEquipment = CreateEquipmentFromItemData(itemData);
|
||||
|
||||
// Position detail panel near the clicked item button
|
||||
PositionDetailPanelNearButton(package, slot);
|
||||
|
||||
FillDetailPanel(package, itemData);
|
||||
PositionDetailPanelNearButton(package, slot);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -957,7 +960,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
|
||||
private void ShowDetailPanel(bool show)
|
||||
{
|
||||
EC_UIUtility.ShowPanel(detailPanelRoot, show);
|
||||
EC_UIUtility.ShowPanel(detailPanelRoot.gameObject, show);
|
||||
}
|
||||
|
||||
private Button GetButtonForSlot(byte package, int slot)
|
||||
@@ -1059,7 +1062,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
// Show panel first
|
||||
// 先显示面板
|
||||
ShowDetailPanel(true);
|
||||
|
||||
descriptionText.tmp.gameObject.GetComponent<ItemInfoText>()?.RefreshLayout();
|
||||
|
||||
}
|
||||
|
||||
@@ -1080,8 +1083,17 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
if (package == PKG_INVENTORY)
|
||||
{
|
||||
tmpText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
//if item is @EC_IvtrEquip and is not equipped, show equip button
|
||||
if(item is EC_IvtrEquip)
|
||||
{
|
||||
tmpText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
tmpText.text = "Use";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
else if (package == PKG_EQUIPMENT)
|
||||
{
|
||||
@@ -1098,8 +1110,16 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
if (package == PKG_INVENTORY)
|
||||
{
|
||||
buttonText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
if(item is EC_IvtrEquip)
|
||||
{
|
||||
buttonText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
buttonText.text = "Use";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
else if (package == PKG_EQUIPMENT)
|
||||
{
|
||||
@@ -1265,5 +1285,16 @@ namespace BrewMonster.Scripts.Managers
|
||||
draggedItemSourceSlot = -1;
|
||||
draggedItemSourcePackage = 0;
|
||||
}
|
||||
public void RefreshLayout()
|
||||
{
|
||||
var rectTransform = GetComponent<RectTransform>();
|
||||
if (rectTransform == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
rectTransform.ForceUpdateRectTransforms();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user