TH1/Unity/Assets/Scripts/TH1_UI/View/Interaction/UIInteractionCityUpgradeItem.cs
2025-08-23 16:56:00 +08:00

57 lines
1.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 文件位置: Assets/Scripts/TH1_UI/View/Announce/UIInteractionCityUpgradeItem.cs
using System;
using Logic.Action;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
// ✅ [新增] 引用 CommonActionId 的命名空间
namespace TH1_UI.View.Interaction
{
[RequireComponent(typeof(Button))]
public class UIInteractionCityUpgradeItem : MonoBehaviour
{
[Header("配置")]
[Tooltip("在Editor中设置此选项的唯一ID")]
// 🔄 [修改] 类型从 int 改为 CommonActionId命名从 _choiceID 改为 _choiceId
[SerializeField] private CommonActionId _choiceId;
[Header("组件引用")]
public TextMeshProUGUI DescriptionText;
private Button _button;
// 🔄 [修改] Action的泛型参数改为 CommonActionId
private Action<CommonActionId> _onClickCallback;
// 🔄 [修改] 公共属性的类型和命名
public CommonActionId ChoiceId => _choiceId;
private void Awake()
{
_button = GetComponent<Button>();
_button.onClick.AddListener(HandleClick);
}
/// <summary>
/// 初始化这个选项按钮
/// </summary>
// 🔄 [修改] 回调参数的类型改为 Action<CommonActionId>
public void Setup(Action<CommonActionId> onClickCallback)
{
_onClickCallback = onClickCallback;
}
private void HandleClick()
{
// 🔄 [修改] 调用回调时传入自身的 _choiceId
_onClickCallback?.Invoke(_choiceId);
}
private void OnDestroy()
{
_button.onClick.RemoveListener(HandleClick);
}
}
}