using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
///
/// 英雄卡片拖动组件(布阵阶段使用)。
/// 拖动时在场景里生成一个半透明的英雄"幽灵"跟随指针,并吸附到最近的部署格位;
/// 松手后把该卡对应的英雄登记到格位上,卡片进入"已使用"状态。
///
public class HeroCardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
[Header("配置(由 DefenseGameFlowController 注入)")]
public int cardIndex; // 卡片序号,0 起
public GameObject heroPrefab; // 对应英雄 Prefab
public CharacterData characterData; // 角色数据
[Header("幽灵外观")]
[Range(0.1f, 1f)] public float ghostAlpha = 0.55f;
private Canvas canvas;
private CanvasGroup canvasGroup;
private GameObject ghost;
private Material ghostHiddenMaterial;
private bool dragging;
private int currentCell = -1;
private const float PlacedCardAlpha = 0.35f;
private void Awake()
{
canvas = GetComponentInParent