12. 创建卡牌数据类

创建数据类

上一节,我们添加了卡牌的形状,这一节,我们来添加卡牌的数据,使用 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

标签:20240304_1350

posted @ 2024-03-04 13:59  hellozjf  阅读(68)  评论(0编辑  收藏  举报