Unity3D游戏开发框架-创建txt文件,管理prefab路径
发表于2018-09-10
上篇内容给大家介绍了Unity3d游戏开发框架中标志量,数学管理类,时间管理,Log日志管理这几个部分的内容,本篇继续给大家介绍下Unity3D游戏开发框架系列,来看看如何去创建txt文件,管理管理prefab路径。
新建C#脚本文件:CreateResini,这里没有继承MonoBehaviour
using UnityEngine; using System.Collections; using UnityEditor; using System.IO; using System.Collections.Generic; public class CreateResini { [MenuItem("TestMenu/CreateResIni")] public static void Createini() { Dictionary<string, string> dic = new Dictionary<string, string>(); string pathRes = Application.dataPath +"/Resources/"; string pathIni = pathRes + "/res.txt"; if (File.Exists(pathIni)) { File.Delete(pathIni); } CreateResInfo(pathRes, ref dic); List<string> list = new List<string>(); foreach(KeyValuePair<string,string> keyValue in dic) { list.Add(keyValue.Key +"="+keyValue.Value); } File.WriteAllLines(pathRes +"/res.txt",list.ToArray()); Log.Debug("生成完毕 "); AssetDatabase.Refresh(); } public static void CreateResInfo(string path,ref Dictionary<string,string>dic) { DirectoryInfo dir = new DirectoryInfo(path); if (!dir.Exists) { return; } FileInfo[] files = dir.GetFiles(); for (int i = 0; i < files.Length;i++ ) { FileInfo info = files[i]; if (!(info.Name.IndexOf(".meta",0) > 0)) { string pathdir = info.FullName.Replace("\\","/") .Replace((Application.dataPath + "/Resources/"), "") .Replace(info.Name, "").TrimEnd('/'); string fileName = Path.GetFileNameWithoutExtension(info.Name); Debug.Log("fileName =" + fileName); if (!dic.ContainsKey(info.Name)) { dic.Add(fileName, pathdir); } else { Log.Error("存在相同的资源名称 名称为:" + info.Name + "/path1=" + dic[info.Name] + "/ path2 =" + pathdir); } } } DirectoryInfo[] dirs = dir.GetDirectories(); if (dirs.Length > 0) { for (int i = 0; i < dirs.Length;i++ ) { string tempPath = Path.Combine(path, dirs[i].Name); CreateResInfo(tempPath, ref dic); } } } }
来自:https://blog.csdn.net/u013108312/article/details/52493799
如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引