U3D插件 CSVSerialize(CSV转Scriptable)

原创 CSDN 我是重阳 转载请注明出处

很久没写博客了,原因是盗用太多了,写出来也没成就感,现在写,完全是为了做笔记。

因为我发现,一段时间没搞U3D,我好多东西竟然忘了。。。忘了。。。老了,就是老了,记性差的要死!

由于疫情原因,现在都在家远程办公,不过做的是独立游戏开发,多多少少,带一点梦想,虽然钱不多,但还是挺不错,有空就上来分享一下做独立游戏的技术心得。

CSV文档和Scriptable不懂的就自己百度一下吧,网上一大把介绍,我用了好几个插件,感觉CSVSerialize这个插件最好用。

这里是演示如果把一个CSV技能表导入到U3D里的Scriptable使用。

Scriptable有两个神坑的地方,它不能在真机上修改,那就意味不能做存档用,还有一个不支撑二维数组,字典类型。

当然可以自己扩展,我因为需要用到枚举数组,扩展了一下。

分为本地读取,StreamingAssets文件夹读取CSV,网络加载CSV。

一.本地读取

1.准备一个SkillData.csv文档,这里的演示有瑕疵,所有的变量名最好都是小写,特别是ID必须小写id,否则就要在ID前再弄一行,哪怕空白都行,要不然ID这个变量读取不出来,具体为什么,可以自己去看源码,所有变量名都小写就对了。

2.创建SkillData.cs脚本

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

[CreateAssetMenu(fileName = "SkillData", menuName = "创建Scriptable资源数据/SkillData")]
public class SkillData : ScriptableObject
{
  
    [System.Serializable]
    public class Skill
    {
        public int ID;
        public string Name;
        public int QunGong;
    }

    public Skill[] m_Skills;

}

3.生成SkillData.asset自定义资源

窗口右键----Create----创建Scriptable资源数据----SkillData

4.下载安装CSVSerialize,是完全免费的。

CSV Serialize | Integration | Unity Asset Store

5.修改CSVImportExample.csv

关于DEMO自带的其他CSV文件处理,可以删掉。

            if (str.IndexOf("/SkillData.csv") != -1)
            {
                TextAsset data = AssetDatabase.LoadAssetAtPath<TextAsset>(str);
                string assetfile = str.Replace(".csv", ".asset");
                SkillData gm = AssetDatabase.LoadAssetAtPath<SkillData>(assetfile);
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
CSVScriptableObject是一种将CSV文件中的数据换为ScriptableObject的方法。首先,你需要创建一个继承自ScriptableObject的类,该类将用于存储CSV文件的数据。在这个类中,你可以定义与CSV文件中的列对应的属性。例如,你可以定义一个属性来存储CSV文件中的文件名,另一个属性来存储CSV文件的内容。\[1\] 接下来,你需要编写一个方法来实现CSVScriptableObject的功能。在这个方法中,你可以使用C#的文件读取功能来读取CSV文件的内容,并将其换为ScriptableObject的实例。你可以使用字典或其他数据结构来存储CSV文件中的数据,以便在需要时进行访问和检索。\[2\] 在CSV文件时,你可以使用Unity的菜单功能来方便地调用换方法。通过在方法上添加\[MenuItem\]属性,你可以将方法添加到Unity编辑器的菜单中,以便在需要时手动触发换过程。\[3\] 总结来说,CSVScriptableObject的过程包括创建一个继承自ScriptableObject的类,定义与CSV文件中的列对应的属性,编写一个方法来实现CSV文件的读取和换,以及使用Unity的菜单功能来方便地调用换方法。这样,你就可以将CSV文件中的数据换为ScriptableObject,并在游戏中使用这些数据了。 #### 引用[.reference_title] - *1* [用ScriptableObject打包数据(以csv文件为例)](https://blog.csdn.net/jjiss318/article/details/41347585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [U3D插件 CSVSerializeCSVScriptable)](https://blog.csdn.net/u012322710/article/details/125093887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [浅谈Unity ScriptableObject](https://blog.csdn.net/u013748096/article/details/127772525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是重阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值