diff --git a/Assets/TcgEngine/Resources/Packs/elite.asset b/Assets/TcgEngine/Resources/Packs/elite.asset
index 6d9bf74..f208b98 100644
--- a/Assets/TcgEngine/Resources/Packs/elite.asset
+++ b/Assets/TcgEngine/Resources/Packs/elite.asset
@@ -34,10 +34,12 @@ MonoBehaviour:
probability: 90
- variant: {fileID: 11400000, guid: 3a827aeeaca139641a4b8ad0c3c74f52, type: 2}
probability: 10
- title: 黄金卡包
+ title: "\u9EC4\u91D1\u5361\u5305"
pack_img: {fileID: 21300000, guid: e400c282187e5f54dab6aacfd8adae20, type: 3}
cardback_img: {fileID: 21300000, guid: 96d8dad709a2729419f19d1d4633a0ef, type: 3}
- desc: 精英卡包,内含5张卡牌。更有机会获得稀有卡牌和神话卡牌。.
+ pack_img_path: Cardbacks/pack_gold.png
+ cardback_img_path: Cardbacks/cardback_gold.png
+ desc: "\u7CBE\u82F1\u5361\u5305\uFF0C\u5185\u542B5\u5F20\u5361\u724C\u3002\u66F4\u6709\u673A\u4F1A\u83B7\u5F97\u7A00\u6709\u5361\u724C\u548C\u795E\u8BDD\u5361\u724C\u3002."
sort_order: 1
available: 1
cost: 250
diff --git a/Assets/TcgEngine/Resources/Packs/standard.asset b/Assets/TcgEngine/Resources/Packs/standard.asset
index 089ba91..dc1bbc3 100644
--- a/Assets/TcgEngine/Resources/Packs/standard.asset
+++ b/Assets/TcgEngine/Resources/Packs/standard.asset
@@ -36,10 +36,12 @@ MonoBehaviour:
probability: 96
- variant: {fileID: 11400000, guid: 3a827aeeaca139641a4b8ad0c3c74f52, type: 2}
probability: 4
- title: 白银卡包
- pack_img: {fileID: 21300000, guid: b2c2a8efa1f7d7b4593a512e2c8cd61a, type: 3}
+ title: "\u767D\u94F6\u5361\u5305"
+ pack_img: {fileID: 0}
cardback_img: {fileID: 21300000, guid: 0e839bd6251bf9a4697b9cb18c1565a4, type: 3}
- desc: 白银卡包,内含5张卡牌.
+ pack_img_path: Cardbacks/pack_silver.png
+ cardback_img_path: Cardbacks/cardback_silver.png
+ desc: "\u767D\u94F6\u5361\u5305\uFF0C\u5185\u542B5\u5F20\u5361\u724C."
sort_order: 0
available: 1
cost: 100
diff --git a/Assets/TcgEngine/Scripts/Data/PackData.cs b/Assets/TcgEngine/Scripts/Data/PackData.cs
index 6c25b5a..dd71780 100644
--- a/Assets/TcgEngine/Scripts/Data/PackData.cs
+++ b/Assets/TcgEngine/Scripts/Data/PackData.cs
@@ -22,8 +22,11 @@ namespace TcgEngine
[Header("Display")]
public string title;
- public Sprite pack_img;
- public Sprite cardback_img;
+
+ [Header("Dynamic Art Paths")]
+ public string pack_img_path;
+ public string cardback_img_path;
+
[TextArea(5, 10)]
public string desc;
public int sort_order;
@@ -56,6 +59,54 @@ namespace TcgEngine
{
return desc;
}
+
+ ///
+ /// 获取Pack图片,优先使用动态路径
+ ///
+ public Sprite GetPackImage()
+ {
+ if (!string.IsNullOrEmpty(pack_img_path))
+ {
+ Sprite dynamicSprite = SpriteLoader.Get()?.LoadSprite(pack_img_path);
+ if (dynamicSprite != null)
+ {
+ return dynamicSprite;
+ }
+ else
+ {
+ Debug.LogWarning($"Pack {id} 图片加载失败: {pack_img_path}");
+ }
+ }
+ else
+ {
+ Debug.LogWarning($"Pack {id} pack_img_path为空");
+ }
+ return pack_img;
+ }
+
+ ///
+ /// 获取卡背图片,优先使用动态路径
+ ///
+ public Sprite GetCardbackImage()
+ {
+ if (!string.IsNullOrEmpty(cardback_img_path))
+ {
+ Sprite dynamicSprite = SpriteLoader.Get()?.LoadSprite(cardback_img_path);
+ if (dynamicSprite != null)
+ {
+ return dynamicSprite;
+ }
+ else
+ {
+ Debug.LogWarning($"Pack {id} 卡背图片加载失败: {cardback_img_path}");
+ }
+ }
+ else
+ {
+ Debug.LogWarning($"Pack {id} cardback_img_path为空");
+ }
+ return cardback_img;
+ }
public static PackData Get(string id)
{
diff --git a/Assets/TcgEngine/Scripts/GameClient/HandPack.cs b/Assets/TcgEngine/Scripts/GameClient/HandPack.cs
index 209bb01..00d5af9 100644
--- a/Assets/TcgEngine/Scripts/GameClient/HandPack.cs
+++ b/Assets/TcgEngine/Scripts/GameClient/HandPack.cs
@@ -127,7 +127,7 @@ namespace TcgEngine.Client
PackData ipack = PackData.Get(pack.tid);
if (ipack)
{
- pack_sprite.sprite = ipack.pack_img;
+ pack_sprite.sprite = ipack.GetPackImage();
}
}
diff --git a/Assets/TcgEngine/Scripts/GameClient/PackCard.cs b/Assets/TcgEngine/Scripts/GameClient/PackCard.cs
index 02dd020..fce77c7 100644
--- a/Assets/TcgEngine/Scripts/GameClient/PackCard.cs
+++ b/Assets/TcgEngine/Scripts/GameClient/PackCard.cs
@@ -70,7 +70,7 @@ namespace TcgEngine.Client
this.variant = variant;
if (cardback != null)
- cardback.sprite = pack.cardback_img;
+ cardback.sprite = pack.GetCardbackImage();
card_ui.SetCard(card, variant);
new_card?.SetActive(false);
diff --git a/Assets/TcgEngine/Scripts/UI/PackUI.cs b/Assets/TcgEngine/Scripts/UI/PackUI.cs
index 13f0fe2..1add572 100644
--- a/Assets/TcgEngine/Scripts/UI/PackUI.cs
+++ b/Assets/TcgEngine/Scripts/UI/PackUI.cs
@@ -41,7 +41,7 @@ namespace TcgEngine.UI
pack_title.text = pack.title;
}
pack_img.enabled = true;
- pack_img.sprite = pack.pack_img;
+ pack_img.sprite = pack.GetPackImage();
}
if (pack_quantity != null)