Add button and correct refresh detail item pannel size
This commit is contained in:
@@ -28,6 +28,8 @@ namespace BrewMonster.Scripts.Managers
|
||||
[SerializeField] private TextOutlet nameText;
|
||||
[SerializeField] private TextOutlet descriptionText;
|
||||
[SerializeField] private TextOutlet extendedDescText;
|
||||
[SerializeField] private Button equipButton;
|
||||
[SerializeField] private Button dropButton;
|
||||
|
||||
[Header("Inventory Settings")]
|
||||
[SerializeField] private bool autoRefresh = true;
|
||||
@@ -664,11 +666,20 @@ namespace BrewMonster.Scripts.Managers
|
||||
}
|
||||
}
|
||||
|
||||
public void RefreshLayout(GameObject gameObject)
|
||||
{
|
||||
var parent = gameObject.GetComponent<RectTransform>();
|
||||
|
||||
// Force Unity to rebuild layout immediately
|
||||
parent.ForceUpdateRectTransforms();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(parent);
|
||||
}
|
||||
private void ShowDetailPanel(bool show)
|
||||
{
|
||||
if (detailPanelRoot != null)
|
||||
{
|
||||
detailPanelRoot.SetActive(show);
|
||||
RefreshLayout(detailPanelRoot);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -822,8 +833,102 @@ namespace BrewMonster.Scripts.Managers
|
||||
extendedDescText?.Set(itemExtendedDesc ?? "");
|
||||
}
|
||||
|
||||
// Setup equip and drop buttons
|
||||
SetupEquipButton(package, item);
|
||||
SetupDropButton(package, item);
|
||||
|
||||
ShowDetailPanel(true);
|
||||
}
|
||||
|
||||
private void SetupEquipButton(byte package, EC_IvtrItem item)
|
||||
{
|
||||
if (equipButton == null) return;
|
||||
|
||||
// Clear previous listeners
|
||||
equipButton.onClick.RemoveAllListeners();
|
||||
equipButton.onClick.AddListener(OnEquipButtonClicked);
|
||||
|
||||
// Set button text and visibility based on package
|
||||
var buttonText = equipButton.GetComponentInChildren<UnityEngine.UI.Text>();
|
||||
if (buttonText == null)
|
||||
{
|
||||
var tmpText = equipButton.GetComponentInChildren<TMPro.TextMeshProUGUI>();
|
||||
if (tmpText != null)
|
||||
{
|
||||
if (package == PKG_INVENTORY)
|
||||
{
|
||||
tmpText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else if (package == PKG_EQUIPMENT)
|
||||
{
|
||||
tmpText.text = "UnEquip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
equipButton.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (package == PKG_INVENTORY)
|
||||
{
|
||||
buttonText.text = "Equip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else if (package == PKG_EQUIPMENT)
|
||||
{
|
||||
buttonText.text = "UnEquip";
|
||||
equipButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
equipButton.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetupDropButton(byte package, EC_IvtrItem item)
|
||||
{
|
||||
if (dropButton == null) return;
|
||||
|
||||
// Clear previous listeners
|
||||
dropButton.onClick.RemoveAllListeners();
|
||||
dropButton.onClick.AddListener(OnDropButtonClicked);
|
||||
|
||||
// Set button text and visibility based on package
|
||||
var buttonText = dropButton.GetComponentInChildren<UnityEngine.UI.Text>();
|
||||
if (buttonText == null)
|
||||
{
|
||||
var tmpText = dropButton.GetComponentInChildren<TMPro.TextMeshProUGUI>();
|
||||
if (tmpText != null)
|
||||
{
|
||||
if (package == PKG_INVENTORY || package == PKG_EQUIPMENT)
|
||||
{
|
||||
tmpText.text = "Drop";
|
||||
dropButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
dropButton.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (package == PKG_INVENTORY || package == PKG_EQUIPMENT)
|
||||
{
|
||||
buttonText.text = "Drop";
|
||||
dropButton.gameObject.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
dropButton.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user