原创 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);