using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
public class Tool
{
static Dictionary<int, Table_item> items_ID = TableManager.Getitem();
static Dictionary<string, Table_item> items_Name = new Dictionary<string, Table_item>();
[MenuItem("Menu/一键导入道具信息", false, 1)]
public static void 一键导入道具信息()
{
//---------------------表格初始化,并读取到字典中---------------------------//
//此处使用的自己的文件读取方式,可以按各自的读取方式进行修改
TableManager.Initialize();
items_ID = TableManager.Getitem();
items_Name.Clear();
foreach (var item in items_ID)
{
items_Name.Add(item.Value.EnName, item.Value);
}
//---------------------创建文件夹和预制体(一定要优先创建,之后好做关联)---------------------------//
foreach (var item in items_Name)
{
string path = "Assets/Resources/" + item.Value.FileName;
string filePath = path + "/" + item.Value.EnName + ".Prefab";
//判断预制体所在的文件夹是否存在,若不存在则创建
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//当前预制体
GameObject Target = AssetDatabase.LoadAssetAtPath(filePath, typeof(GameObject)) as GameObject;
//预制体不存在
if (!Target)
{
GameObject newGameObject = new GameObject();
//新建预制体的处理,例如添加脚本,数据初始化,可以才是用switch来分别对不同的预制体添加不同的脚本
PrefabUtility.SaveAsPrefabAsset(newGameObject, filePath);
GameObject.DestroyImmediate(newGameObject);
}
else
{
Target = PrefabUtility.InstantiatePrefab(Target) as GameObject;
//此处进行预制体的修改,依旧使用Switch来获取对应脚本来进行数据替换
PrefabUtility.SaveAsPrefabAsset(Target, filePath);
GameObject.DestroyImmediate(Target);
}
}
//保存修改
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}