在需要使用大量配置数据时,全部使用变量管理多有不便,我们可以使用CSV表格批量管理配置数据。
CSV表
CSV表的基本单位是单元格,一行或一列单元格构成行和列。行数和列数均是以1为计数起始,例如图中“Key”字段所在的行数和列数均为1,“200”字段的列数为3、行数为3。
在Craftland Studio PC中,我们规定CSV表格的第一行是列名、第二行为值的类型。合法地填写第二行的数据,取回的值会自动赋予对应的类型。当前支持填入第二行的数据类型有:
- string
- int
- float
- bool
以上数据类型不区分大小写。
默认数据类型为string,在第二行填入不识别的数据类型或留空会认为该列第三行以下的数据是string型。
在第三行以后的数据行填入不符合第二行规定的数据类型的数据,则会视为该数据类型的默认值。一些特殊的情况下,会视为特殊的值,如int型填入值越界。
在Craftland Studio PC中,您可以在脚本内读取已经导入至工程的CSV表格中的数据,也可以定位某个数据所在的行和列。但是编辑CSV表格则必须在编辑器外进行。
导入CSV表
要在您的工程中使用CSV表,首先要将准备好的CSV表导入。
将上文图中的数据保存至一张名为test的csv表中,并在游戏工程中导入:
虽然您可以在不同路径分别保存复数个同名的csv表格,但是不推荐csv表格出现重名的情况。这是因为在使用图元对csv表进行读取等操作时,只会显示文件名。虽然实际运行时程序会区分您的文件,但是这非常不利于编辑。
两个同名csv表格,则它们的路径一定不同。
您可以通过将csv表格存放在同一文件夹下避免表格名重复。
读取CSV表
全表读取
读取全表时,返回值为一个二维数组,以每行的信息组成的数组依次作为全表数组的元素,包括列名行与数据类型行(第1和第2行)。
如果将返回数据作为数组使用,则索引是从0开始的,这与下文通过脚本取csv中的行和列时不同,后者的序号是从1开始的。
按行、列读取
读取CSV表格行和列时,返回的是该行或该列的列表。行和列的编号均以1开始。
通过Key读取行
可以通过指定列作为Key,进而检索整行数据。
需要注意:作为Key的列需要保证值唯一,通常会使用ID列作为Key列。如果在Key列出现了重复数据,则只会返回第一行找到的数据。
另外,使用Key检索数据行时,只会检索第三行之后的数据。
读取指定单元格
如果数据超过了该数据类型的限制,如int值上限为2147483647(2^31-1),则仍然会返回值,只是可能不符合预期。如int值超过上限后会从最小值-2147483648重新开始计算。
如填入的值不符合数据类型要求,则会返回该数据类型的默认值。
检索CSV表
可以通过列名,即CSV表的第一行数据来检索指定单元格或该列的编号。