Unity Csv2Csharp

1.在unity中右键csv文件 生成这张表的Csharp类

2.表的第一行第一个格子 C#类的全类名 必须带命名空间 第二个格子是类型(class/enum) 第三个格子是注释(小于三列的时候就别加了)

3.class_表的第二行 字段名 一个格子一个字段

4.class_表的第三行 字段类型 一个格子一个类型 支持少数类型(string,int,float,Array,Vector2,Vector3,Enum(枚举填写整数))

5.class_表的第二行 字段注释 一个格子一个字段 给策划看的

6.class_表关于转字典的函数 字典的Key是第一个字段的类型

7.enum_表第二行始终是[枚举名,枚举值,概要]  从第三行开始例[Move,1,移动]

using System;
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace FGUFW.Core
{
    static public class Csv2Csharp
    {

        const string Extension = ".csv";
        
        [MenuItem("Assets/PrintAssetPath")]
        static private void printAssetPath()
        {
            Debug.Log(AssetDatabase.GetAssetPath(Selection.activeObject));
        }

        [MenuItem("Assets/Csv2Csharp")]
        private static void Build()
        {
            var selects = Selection.objects;
            if(selects==null)
            {
                return;
            }

            //筛选csv文件
            List<string> paths = new List<string>();
            foreach (var obj in selects)
            {
                string path = AssetDatabase.GetAssetPath(obj).Substring(6);
                if(Path.GetExtension(path)==Extension)
                {
                    paths.Add(path);
                }
            }
            if(paths.Count==0)return;
            
            foreach (var path in paths)
            {
                var line = File.ReadAllLines(Application.dataPath+path)[0];
                var fullclassname = line.Split(',')[0].Split('.');
                var csharptype = line.Split(',')[1];
                switch (csharptype)
                {
                    case "class":
                        createClassScript(path);
                    break;
                    case "enum":
                        createEnumScript(path);
                    break;
                    default:
                        Debug.LogError($"未标注类型 {csharptype}");
                    break;
                }
            }
            
            AssetDatabase.Refresh();
        }

        private static void createClassScript(string path)
        {
            var lines = File.ReadAllLines(Application.dataPath+path);
            var fullclassname = lines[0].Split(',')[0].Split('.');
            var classSu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值