创建数据类
上一节,我们添加了卡牌的形状,这一节,我们来添加卡牌的数据,使用 ScriptableObject 来添加卡牌的数据
如上图所示,我们在 Scripts/Card/ScriptableObject 下面创建了 CardDataSO 文件,它里面有卡牌名字、卡牌图片、卡牌费用、卡牌类型、描述等信息
然后再添加一个 Card 类,用于通过 SO 文件给 Card 进行赋值
using TMPro;
using UnityEngine;
public class Card : MonoBehaviour
{
[Header("组件")]
public SpriteRenderer cardSprite;
public TextMeshPro costText;
public TextMeshPro descriptionText;
public TextMeshPro typeText;
public TextMeshPro cardName;
public CardDataSO cardData;
private void Start()
{
Init(cardData);
}
public void Init(CardDataSO data)
{
cardData = data;
cardSprite.sprite = data.cardImage;
costText.text = data.cost.ToString();
descriptionText.text = data.description;
typeText.text = data.cardType switch
{
CardType.Attack => "攻击",
CardType.Defense => "技能",
CardType.Abilities => "能力",
_ => throw new System.NotImplementedException(),
};
cardName.text = data.cardName;
}
}
接着创建 SO,然后给卡牌进行赋值
运行之后,就能看到卡牌内容变得和 SO 里定义的一样了
项目相关代码
代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git
标签:12,创建,卡牌,TextMeshPro,text,data,public,Card From: https://www.cnblogs.com/hellozjf/p/18051686