Unity读取Excel表格简单好抄(附资源包)

废话不多说

第一步:创建3个文件夹(Data,Editor,Excel)。

第二步:下载Excel转换插件(链接mikito/unity-excel-importer (github.com)

第三步:导入插件。

第四步:编写Excel表格取名叫TextDatas(表格里面的名字也要改成TextData)在里面写一些测试数据。

第五步:编写脚本TextDatas。

using System;
using System.Collections.Generic;
using UnityEngine;

[Serializable]
public class TextData//需要序列化的字段
{
    public string Name;//职业
    public float Hit;//攻击
    public float Defense;//防御
    public float Hp;//生命
}

[ExcelAsset(AssetPath = "Data")]//导出数据目标地址
public class TextDatas : ScriptableObject
{
    //列表名字要和excel文件名相同(表格里面的名字)
    public List<TextData> textData;
    public Dictionary<string, TextData> TextDataDataDict => textDataDict;//公开字典
    private Dictionary<string, TextData> textDataDict;//私有字典

    //初始化Excel中的数据
    public void Init()
    {
        textDataDict = new Dictionary<string, TextData>();
        foreach (var item in textData)
        {
            //添加到字典中,key为职业名
            textDataDict.Add(item.Name, item);
        }
    } 
}

 第六步:将Excel拖入刚刚创建的Excel文件夹中。

第七步:导入过后我们就能在Data文件夹里面看到创好的数据了。

第八步:在场景中创建一个图片和4个文本加一个空对象

第九步:编写Fashi脚本用来读取法师(也可以是其他的)的数据并加到空对象上。

using UnityEngine;
using UnityEngine.UI;

public class Fashi : MonoBehaviour
{
    public Text nameText;
    public Text hitText;
    public Text defenseText;
    public Text hpText;

    public TextDatas textDatas; // 将 TextDatas ScriptableObject 作为公共变量暴露在编辑器中

    private void Start()
    {
        // 确保 TextDatas 已经初始化
        textDatas.Init();

        // 从字典中读取法师的数据
        if (textDatas.TextDataDataDict.TryGetValue("法师", out TextData mageData))
        {
            // 更新文本
            nameText.text = mageData.Name;
            hitText.text = mageData.Hit.ToString();
            defenseText.text = mageData.Defense.ToString();
            hpText.text = mageData.Hp.ToString();
        }
        else
        {
            Debug.LogError("Mage data not found!");
        }
    }
}

第十步:将文本和脚本和数据绑定起来

第11步骤:运行游戏就可以看到游戏里面的数据更新了,并且与表格一致

如果看到这里还是觉得麻烦可以直接到链接(GitHub - laozhupeiqia/-Excel-)去下载直接导入游戏就能使用的资源包(插件已经添加进去了真的下载即用),自己多玩几遍就会了。

猜你喜欢

转载自blog.csdn.net/2301_76156790/article/details/144163281
今日推荐