Esempio n. 1
0
    void Awake()
    {
        SounderData s = Resources.Load("SounderData") as SounderData;

        list = s.list;
    }
Esempio n. 2
0
    static void SetSounderRecords(bool add)
    {
        string file = "/Resources/SounderData.asset";

        if (!Directory.Exists(Application.dataPath + "/Resources/"))
        {
            Directory.CreateDirectory(Application.dataPath + "/Resources/");
        }
        SounderData sd = null;

        if (!File.Exists(Application.dataPath + file))
        {
            sd = ScriptableObject.CreateInstance <SounderData>();
            AssetDatabase.CreateAsset(sd, "Assets" + file);
            AssetDatabase.SaveAssets();
        }
        else
        {
            sd = Resources.Load("SounderData") as SounderData;
        }


        object[] arr = Selection.GetFiltered(typeof(AudioClip), SelectionMode.DeepAssets);
        Dictionary <string, List <AudioClip> > dict = new Dictionary <string, List <AudioClip> >();

        for (int i = 0; i < arr.Length; i++)
        {
            if (!(arr[i] is AudioClip))
            {
                continue;
            }
            string name = System.Text.RegularExpressions.Regex.Replace((arr[i] as AudioClip).name, @"\d", "");
            if (!dict.ContainsKey(name))
            {
                dict.Add(name, new List <AudioClip>());
            }
            dict[name].Add((arr[i] as AudioClip));
        }


        List <SoundInfo> infos = new List <SoundInfo>();
        SoundInfo        info;

        foreach (KeyValuePair <string, List <AudioClip> > data in dict)
        {
            data.Value.Sort(delegate(AudioClip a1, AudioClip a2)
            {
                int i1 = 0, i2 = 0;
                int.TryParse(Regex.Replace(a1.name, @"[^\d.\d]", ""), out i1);
                int.TryParse(Regex.Replace(a2.name, @"[^\d.\d]", ""), out i2);
                return(i1.CompareTo(i2));
            });
            info       = new SoundInfo();
            info.name  = data.Key;
            info.clips = data.Value.ToArray();
            infos.Add(info);
        }

        if (infos.Count == 0)
        {
            Debug.LogError("请在库里选择音频文件。它们将被自动添加到Sounder的LIST里,保存好预制每个场景拖一个就KO了");
            return;
        }

        if (add)
        {
            if (sd.list != null)
            {
                infos.AddRange(sd.list);
            }
        }
        var resultArr = infos.ToArray();

        Array.Reverse(resultArr);
        sd.list = resultArr;
        AssetDatabase.SaveAssets();
        Debug.Log("完成");
    }