Пример #1
0
    public static void SetAssetLabels()
    {
        resourceCount = 0;
        typeAssets    = new Dictionary <string, List <string> >();

        if (File.Exists(configPath))
        {
            File.Delete(configPath);
        }

        List <string> files = FindAllFiles.ListFiles(buildAssetsPath, true);

        abConfig      = new ABConfig();
        abConfig.data = new List <ABConfigInfo>();

        FileStream   fs = new FileStream(configPath, FileMode.Create);
        StreamWriter sw = new StreamWriter(fs);

        SetABName(files, true);

        string js = EditorJsonUtility.ToJson(abConfig, true);

        sw.Write(js);

        sw.Close(); fs.Close();

        AssetDatabase.Refresh();

        SetABName(new List <string> {
            configPath
        }, true);
    }
    public static void CopyFile(string scrPath, string desPath, bool encrpt = false)
    {
        if (!Directory.Exists(desPath))
        {
            Directory.CreateDirectory(desPath);
        }

        Dictionary<uint, string> hashToPath = new Dictionary<uint, string>();
        
        List<string> tempFiles = FindAllFiles.ListFiles(scrPath);
        
        foreach (string file in tempFiles)
        {
            string newFile = (desPath + file.Replace(scrPath, "")).ToLower();
            string newPath = Path.GetDirectoryName(newFile).ToLower();

            if (encrpt)
            {
                string hashFile = newFile.Substring(desPath.Length + 1);
                uint hash = EncryptUtil.FileNameHash(hashFile);
                string existPath;
                if (hashToPath.TryGetValue(hash, out existPath))
                {
                    Debug.LogError("Hash collision, hash code : " + hash + ", path :" + newFile + ", exist path : " + existPath);
                    continue;
                }
                newPath = desPath + "/" + hash;
            }
            else
            {
                if (!Directory.Exists(newPath))
                {
                    Directory.CreateDirectory(newPath);
                }
            }
            
            if (File.Exists(newFile))
            {
                File.Delete(newFile);
            }

            if (encrpt)
            {
                byte[] bytes = File.ReadAllBytes(file);
                EncryptUtil.Encryption(bytes);
                File.WriteAllBytes(newPath, bytes);
            }
            else
            {
                File.Copy(file, newFile, true);
            }

        }

        AssetDatabase.Refresh();
    }
Пример #3
0
    public void Init()
    {
        if (questList != null)
        {
            return;
        }
        questList = new List <HexQuest>();

        FindAllFiles.ListFiles(PathUtil.GetQuestDir(HexQuestType.MAIN), false, LoadQuestFormFile);
    }
Пример #4
0
    /// <summary>
    ///  生成bundlefiles
    /// </summary>
    //[@MenuItem(kGenerateAssetBundleFiles, false, 2051)]
    public static void GenerateFiles()
    {
        string bundlefilesPath = Path.Combine(bundlesPath, bundlefilesName);

        List <string> files = FindAllFiles.ListFiles(bundlesPath, true);

        List <string> record = new List <string>();

        for (int i = 0; i < files.Count; i++)
        {
            string filePath = files[i];
            string ext      = Path.GetExtension(filePath);
            string name     = Path.GetFileName(filePath);

            if (ext.Equals(".meta") || ext.Equals(".manifest"))
            {
                continue;
            }

            if (ext.Equals(".ab") || ext.Equals("") || name.Contains("patchs"))
            {
                GLog.Log(name);

                byte[] fileByte = File.ReadAllBytes(filePath);

                string md5 = MD5Util.MD5(fileByte);

                int size = fileByte.Length;

                string relativePath = filePath.Replace(bundlesPath, string.Empty).Trim();

                StringBuilder sb = new StringBuilder();
                sb.Append(relativePath);
                sb.Append("|");
                sb.Append(md5);
                sb.Append("|");
                sb.Append(size);
                record.Add(sb.ToString());
            }
        }

        FileStream   fs = new FileStream(bundlefilesPath, FileMode.Create);
        StreamWriter sw = new StreamWriter(fs);

        for (int i = 0; i < record.Count; i++)
        {
            string value = record[i];
            sw.WriteLine(value);
        }
        sw.Close();
        fs.Close();

        AssetDatabase.Refresh();
    }
Пример #5
0
    public static void ClearAssetLabels()
    {
        resourceCount = 0;
        typeAssets    = new Dictionary <string, List <string> >();
        List <string> files = FindAllFiles.ListFiles(buildAssetsPath, true);

        if (File.Exists(configPath))
        {
            File.Delete(configPath);
        }

        abConfig      = new ABConfig();
        abConfig.data = new List <ABConfigInfo>();
        SetABName(files, false);
        AssetDatabase.Refresh();
    }
Пример #6
0
    public void Init()
    {
        if (questList != null)
        {
            return;
        }

        questList = new List <HexQuest>();

        FindAllFiles.ListFiles(PathUtil.GetQuestDir(HexQuestType.CUSTOM), false, (fileName) =>
        {
            HexQuest quest = new HexQuest();
            quest.type     = HexQuestType.CUSTOM;
            quest.Load(fileName);
            questList.Add(quest);
            CustomModel.MAX_QUEST_ID = Mathf.Max(CustomModel.MAX_QUEST_ID, quest.id);
        });
    }