using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace TcgEngine.Client
{
///
/// Same as HandCard, but simpler version for the opponent's cards
///
public class HandCardBack : MonoBehaviour
{
public Image card_sprite;
[Header("Dynamic Art Path")]
[SerializeField] private string cardback_path;
private RectTransform rect;
private static List card_list = new List();
void Awake()
{
card_list.Add(this);
rect = GetComponent();
// 如果有设置路径,自动加载
if (!string.IsNullOrEmpty(cardback_path))
{
LoadCardbackSprite();
}
else
{
SetCardback(null);
}
}
private void OnDestroy()
{
card_list.Remove(this);
}
///
/// 在 Inspector 中修改值时自动重新加载
///
private void OnValidate()
{
if (Application.isPlaying && !string.IsNullOrEmpty(cardback_path))
{
LoadCardbackSprite();
}
}
public void SetCardback(CardbackData cb)
{
if (cb != null)
card_sprite.sprite = cb.GetCardback();
}
///
/// 设置卡背图片,使用本地图片路径
///
public void SetCardbackPath(string path)
{
cardback_path = path;
LoadCardbackSprite();
}
///
/// 获取当前卡背路径
///
public string GetCardbackPath()
{
return cardback_path;
}
///
/// 加载卡背图片
///
private void LoadCardbackSprite()
{
if (!string.IsNullOrEmpty(cardback_path))
{
Sprite dynamicSprite = SpriteLoader.Get()?.LoadSprite(cardback_path);
if (dynamicSprite != null)
{
card_sprite.sprite = dynamicSprite;
}
else
{
Debug.LogWarning($"HandCardBack 卡背图片加载失败: {cardback_path}");
}
}
else
{
Debug.LogWarning($"HandCardBack cardback_path为空");
}
}
public RectTransform GetRect()
{
if (rect == null)
return GetComponent();
return rect;
}
}
}