当前位置:   article > 正文

【Unity】CSV文件读取操作_unity csv

unity csv

使用配表进行游戏数据配置,是一种很常见的操作。尤其是对于许多策划而言,他们会直接使用Excel表格配表,然后导出CSV文件,供我们使用。

前置介绍

CSV文件是一种文本格式,其中所有元素使用“,”隔开。

ID,Name,value_buy,value_sell
1001,浆果,1,5
1002,水稻,3,6
  • 1
  • 2
  • 3

导出CSV文件可以先创建Excel文件,填好数据后选择左上角文件菜单->导出->更改文件类型->CSV(逗号分隔)(.csv)
在这里插入图片描述
之后在创建时,选择CSV UTF-8(逗号分隔)(
.csv)格式。
注意,此处使用UTF-8的主要原因是表格中出现了中文。如果不存为UTF-8格式的CSV,会出现乱码(经典烫烫烫一类的)。建议使用UTF-8版本的CSV文件,对于后续可能出现的各种需求兼容性会好一些。
在这里插入图片描述
用记事本打开保存的文件,就可以看到上边出现的格式了。该格式将是我们读取的重要途径。

读取CSV文件

CSV文件是很好处理的一种文件格式,我们以两种方式来介绍。
我们在Unity中新建CSVReader的脚本。
我们在Asset文件夹下新建CSV文件夹,其中放入测试CSV文件,命名为TestCSV,后缀为.csv。

1.通用字符串解析器

因为所有读入的CSV文件都是以字符串的形式存储,所以这里构建一个通用输出的方法,该方法会将一行的数据切割。

	private void SplitString(string line)
    {
        string[] value = line.Split(",");
        int id = int.Parse(value[0]);
        string name = value[1];
        int value_buy = int.Parse(value[0]);
        int value_sell = int.Parse(value[0]);
        Debug.Log($"ID为{id}{name},售价为{value_buy},收购价为{value_sell}");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.TextAsset

TextAsset可以读取很多文本文件,txt,csv等,在Inspector窗口公开,则可以直接拖入,以下为解析方式。
这里的加载可以是Recource.Load,AssetBundle,也可以测试的Application.dataPath。

	private void CSVReadWithTextAsset()
    {
        // 资源加载方式
        TextAsset ta = AssetDatabase.LoadAssetAtPath<TextAsset>("Assets/CSV/TestCSV.csv");
        string info = ta.text;

        string[] lines = info.Split("\r");
        for (int i = 1; i < lines.Length-1; i++)
        {
            SplitString(lines[i]);
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.File读入

File是IO的一种读取方式,作为文件,CSV文件自然也可以这样读入。

    private void CSVReadWithFile()
    {
        string path = Application.dataPath + "/CSV/TestCSV.csv";
        if (File.Exists(path))
        {
            string info = File.ReadAllText(path);
            string[] lines = info.Split("\r");
            for (int i = 1; i < lines.Length-1; i++)
            {
                SplitString(lines[i]);
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4.结果展示

其实两种读取方式都使用了同一个输出,因此效果相同。
在这里插入图片描述

补充

没有讲到增删改,原因其实是,配置表程序员只有读的份,或者只读就好,其他都是策划的问题。如果表有问题,请留下证据然后找策划对线,他改完你再用。千万不要出现没经过策划同意便修改表的行为!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/997354
推荐阅读
相关标签
  

闽ICP备14008679号