欢迎光临散文网 会员登陆 & 注册

Unity学习记录/ #7 Excel表格

2022-12-26 19:23 作者:Kanada_a  | 我要投稿

(啊最近期末考试累死人了)

一、数据与逻辑

    嗨喽大家好,本期专栏想着来分享一下 Excel表格 工具在Unity中是如何被我们所运用的。在说具体的使用方法之前,我还想说一说这一方法给我们的项目能带来什么好处,也就是 游戏数据与游戏逻辑的结构

    不知道各位在做自己的游戏项目的时候是如何设计自己的框架的,但我本人是十分赞同于 将游戏数据与游戏代码逻辑 分割开来的这一结构。这一结构显而易见的能让我们对游戏的数值等数据有更直观的感受,以及能更方便地对数值做出调整,避免对数据做出错误的修改。事实上在游戏策划岗位,游戏策划使用 Excel表格 等工具来设计游戏数值是很常见的一种方法。

简单的思维导图

    除此之外,Excel表格 所拥有的对数据强大的处理功能,也能给我们的游戏项目带来很多的方便之处。

二、CSV文件

    老样子,我们以一个RPG游戏数值为例,在 Excel表格 中为我们的人物角色做以下数值设计。

每一行代表不同等级下的数值

    当我们在 Excel表 中对角色的数值做完设计后,想要将数据导入Unity测试时,我们就需要将表格导出为 CSV文件类型

将Excel表格导出

    CSV文件,全名为 Comma-Separated Values(逗号分隔值),其本质上还是一种文本文件,以纯文本形式存储表格数据(数字和文本),不过正如他的名字一样,其内容中的数据都以 逗号 的形式分割开来了。我们可以将导出后的 CSV文件 用记事本打开观察其内容。

每行的数据之间用逗号分隔


    这种以逗号换行符为分隔的形式,我们也能简便的使用代码进行切分。当然了,除了CSV格式之外,还有 TSV 制表符分隔值格式等等,但是 CSV格式 是更为大多数软件所接受的格式,大家感兴趣的话也可以去了解了解别的格式。

三、处理和使用数据

    我们将创建好的CSV文件导入Unity中,并创建一个 SO脚本Mono脚本

脚本结构

    在SO脚本中,序列化一个 TextAsset 字段用于获取我们的 CSV文件

SO脚本

    接着我们将在 OnValidate() 方法中,对 CSV文件 中的数据进行处理。OnValidate() 是SO类中的一个公有函数,只会在编辑器中执行,每当这个SO被加载或者我们在 Inspector 窗口中对序列化的字段进行更改的时候,这个方法都会被执行一次。

官方手册的描述

    如下,是我的简单示例。

玩家逻辑类
玩家数据类

    在对玩家数据的处理中,我先将 CSV文本文件 的每一行单独切分出来成为一个string数组,接着对数组除去index为 0 的每一个按照 逗号 进行切分(因为第一行并不是我们的数值),最后将切分好的每一级的数值实例化为玩家状态类存入列表。玩家逻辑类可通过 GetCurrentState() 方法,传入当前等级获取到当前的 玩家属性。

SO上自动帮我们设置好了数值

四、结语

    以上只是我对这类方法的初步简单示例,除此之外我们还可以利用这个方法做出、优化出很多各式各样的结构,大家大可自己多多尝试一番。游戏项目的制作过程中,使用其他相关的工具软件能够帮助到我们很多,加快工作流程、完善游戏数值、制定游戏环节等等,如 Excel表格,当我们做完了上述的步骤之后发现玩家的数值需要进行修改,我们仅需要在 原有的CSV文件中用 Excel 打开进行修改保存,放入编辑器覆盖原有的 CSV文件即可。是不是非常的方便呢?

(又水一期啦,各位特殊时期要照顾好自己!)

学习教程:

阿严:https://www.bilibili.com/video/BV18R4y1C7SC?share_source=copy_web

官方文档中的OnValidate()描述:ScriptableObject-OnValidate() - Unity 脚本 API

Unity学习记录/ #7 Excel表格的评论 (共 条)

分享到微博请遵守国家法律