项目作者: luyuncsd123

项目描述 :
Unity CSV转为C#文件 来省去解析csv的步骤,节省游戏加载时间。
高级语言: C#
项目地址: git://github.com/luyuncsd123/Unity-CSV-To-C-Sharp.git
创建时间: 2014-06-16T01:28:00Z
项目社区:https://github.com/luyuncsd123/Unity-CSV-To-C-Sharp

开源协议:

下载


CSV转C#文件,让Unity运行效率更快。

Unity CSV转为C#文件 来省去解析csv的步骤,节省游戏加载时间。

环境要求:

  1. 安装Python环境
  2. Windows 需要配置环境变量,然后直接双击python脚本即可运行。
  3. Mac安装Python后在终端直接 python _ExcelToCSharp.py的绝对路径即可

转换:

  1. csv文件放到csv_folder文件夹中,运行_ExcelToCSharp.py这个python脚本即可。然后C#文件会出现在csharp_folder/data中,
  2. 然后可以直接使用。

注意:

  1. csv文件第一行是中文注释,第二行英文注释(也是获取数据的key值)
  2. 如下:
  3. -----HeroManage.csv------
  4. 名字 对应文件名
  5. name csvname
  6. wangming HeroData1
  7. xiaohong HeroData2
  8. ---------------------
  9. ----- HeroData1.csv ------
  10. 等级 血量 魔法
  11. level hp mp
  12. 1 20 20
  13. 2 30 30
  14. 3 40 30
  15. 4 40 40
  16. 5 50 40
  17. ---------------------
  18. ----- HeroData2.csv ------
  19. 等级 血量 魔法
  20. level hp mp
  21. 1 10 10
  22. 2 20 30
  23. 3 30 30
  24. 4 50 40
  25. 5 90 100
  26. ---------------------

调用:

  1. 下载项目后,我里面有个例子 csharp_folder/data文件夹下有通过脚本把 csv_folder 目录下的csvC#后的3个文件。
  2. 分别是HeroData1.cs HeroData2.cs HeroManage.cs
  3. 如何调用HeroData1的数据,我们先看下提供了那几个方法:
  4. ---常用---
  5. Instance() 单例模式,返回数据类实例对象。
  6. void print() 打印CSV数据到控制台
  7. string[] getKeyArray(); 以一维数组的形式获取所有的key
  8. string get(int num,string typeName); 通过第几行数据+key值获取string类型数据
  9. int getInt(int num,string typeName); 通过第几行数据+key值获取int类型数据
  10. float getFloat(int num,string typeName); 通过第几行数据+key值获取float类型数据
  11. ---偶尔---
  12. string[,] getDataArray(); 以二维数组的形式获取所有的数据
  13. int num(); 有多少行数据
  14. int keynum(); 有多少个key

实际运用:

  1. 文件名直接调用:
  2. Debug.Log( HeroData1.Instance().getInt(0,"level") )
  3. --1
  4. Debug.Log( HeroData1.Instance().getInt(4,"level") )
  5. --5
  6. Debug.Log( HeroData1.Instance().getInt(1,"hp") )
  7. --20

进击:

  1. 通过dataManage类+字符串文件名直接调用方法
  2. //HeroData1中hp第二行数据的的第一种调用方法:
  3. Debug.Log( HeroData1.Instance().getInt(1,"hp") )
  4. --20
  5. //HeroData1中hp第二行数据的第二种调用方法(用到了dataManage类,这个类会通过_ExcelToCSharp.py生成):
  6. Debug.Log( dataManage.Instance("HeroData1").getInt(1,"hp") )
  7. --20