• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

Unity3D创建txt文件,管理prefab路径

原创内容,转载请注明原文网址: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游戏开发框架-标志量,数学管理类,时间管