首页 > 其他分享 >12. 创建卡牌数据类

12. 创建卡牌数据类

时间:2024-03-04 14:15:47浏览次数:28  
标签:12 创建 卡牌 TextMeshPro text data public Card

创建数据类

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

标签:12,创建,卡牌,TextMeshPro,text,data,public,Card
From: https://www.cnblogs.com/hellozjf/p/18051686

相关文章

  • 创建云之家流程
    创建云之家流程一、功能终端不一致时推送信息创建云之家流程二、触发时机​创建​文档时同时满足终端客户是否和现场一致为否​、实际终端客户不为空​、仪器编号不为空​、仪器编号在设备卡片中​会创建流程三、问题修复2024年3月问题修复修改流程名称中的null为“当前......
  • AP8854 DC-DC降压恒压 12V 6A过EMI线路图 宽电压电源管理IC
    产品描述   AP8854一款宽电压范围降压型DC-D电源管理芯片,内部集成使能开关控制、基准电源、误差放大器、过热保护、限流保护、短路保护等功能,非常适合宽电压输入降压使用。AP8854带使能控制,可以大大节省外围器件,更加适合电池场合使用,具有很高的方案性价比。 特点电压......
  • 基于debian12在局域网中部署gitlab步骤
    基于debian12在局域网中部署gitlab步骤来源  https://zhuanlan.zhihu.com/p/675515010 gitlab安装安装gitlab过程中需要的依赖,包括curl、postfix。使用命令为sudoaptinstallcurlpostfixufw。访问链接gitlab/gitlab-ee-Installation·packages.gitlab.com-Bash......
  • Windows操作系统中的时间戳(Timestamp)是指用于标记事件发生时间的一种时间表示方式。在
    Windows操作系统中的时间戳(Timestamp)是指用于标记事件发生时间的一种时间表示方式。在计算机系统中,时间戳通常用来记录文件的创建时间、修改时间、访问时间等信息,也常用于网络通信中的认证和数据同步等场景。以下是Windows时间戳的基础技术原理:系统时钟:Windows操作系统通过系统......
  • 精简实现、线程安全:C#通用单例泛型基类助你轻松创建单例模式
     概述:该通用单例泛型基类使用C#实现,线程安全,通过泛型参数和Lazy<T>实现简化的单例模式。优点包括线程安全、泛型通用性、简化实现、以及延迟加载的特性。优点:线程安全: 使用Lazy<T>确保了线程安全的延迟初始化,避免了在多线程环境下可能导致的竞态条件问题。泛型通用性: 通......
  • 12_C#中的五大集合类
    C#中五大集合类及其使用示例C#中提供了五种常用的集合类:主要内容:List:可变大小的列表,可以存储任何类型的元素。Dictionary<TKey,TValue>:键值对集合,可以根据键快速查找值。HashSet:不包含重复元素的哈希集合。Stack:后进先出(LIFO)的堆栈。Queue:先进先出(FIFO)的队列......
  • python接口自动化系列(12):集成allure
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标获取到测试结果后,把结果展示在allure报告中,allure报告非常美观,是目前主流。本篇我们先生成json格式的测试结果数据。 安装allure插件pipinstallallure-pytest 修改测试类动态添加allur......
  • P2240 【深基12.例1】部分背包问题
    题目大意给定n个元素的基本信息,代价与价值,计算每个元素的性价比,使其和最大显然,本题可以以贪心的思想去解决,每个元素可以分裂,因而不需要考虑全局最优解,所以可以贪心。其中,计算每个元素的性价比,即a.v/a.m>b.v/b.m,根据这个式子可变形得a.v*b.m>b.v*a.m,化除为乘,更加精确......
  • python接口自动化系列(03):创建自动化框架项目
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标搭建能基于pytest运行测试用例的项目。 创建项目1、输入项目名称2、选择项目位置3、自定义虚拟环境(默认即可) 创建完成 安装pytest补充:python虚拟环境操作,详见:https://www.cnblogs.c......
  • CF1312C Adding Powers 题解
    题意:对于一个初始全\(0\)的序列,问是否能够进行若干次操作(第\(i\)次操作为对序列中任意一个元素增加\(k^i\)),使得此序列变为目标数组\(a\)。首先,我们令需要进行操作的序列为\(b\)。我们知道,如果能通过若干次操作将\(b\)变为\(a\),则有以下三种情形:\(a\)中的元素全......