原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1112/185.html
Unity3D游戏开发框架-创建txt文件,管理prefab路径
常州手机App游戏开发培训-幻天网络这部分的内容,本篇继续给大家介绍下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);
}
}
}
}
上篇:上一篇:Unity3D之点击拾取功能实现
下篇:下一篇:Unity3d游戏开发框架-标志量,数学管理类,时间管