我加载进来的音乐文件,明明多选的两个,但是加载进来是两个没错,
但是两个是 相同的 怎么破?
并且有当第二次打开加载窗口时“could not register the window class,win32 error 0”,两次,点掉就貌似正常了。
难道我64位系统的原因?平台已改为2.0
using UnityEngine;
using System.Collections;
using System.Windows.Forms; //加上这一句,调用windows窗口
using System.Collections.Generic; //加上这一句,调用list
[RequireComponent(typeof(Camera))] // 强制添加一个组件,(限定一定要有某个组件)
[RequireComponent(typeof(AudioListener))]
public class LoadFiles : MonoBehaviour {
public static LoadFiles Instance;
// public int account = 0;
private WWW www;
public static string[] fileNames;
public List<AudioClip> musics = new List<AudioClip>();
//public static AudioClip[] musics;
public AudioSource audioSource;
/// <summary>摘要
/// 获取音频源AudioSource
/// </summary>
void Start()
{
if (gameObject. GetComponent<AudioSource>() == null)
{
gameObject.AddComponent<AudioSource>();
}
audioSource = gameObject.GetComponent<AudioSource>();
}
IEnumerator LoadFile()
{
yield return www; //等待文件加载完毕
musics.Add(
http://www.audioClip); //将加载的文件以音频格式保存到列表中
}
void OnGUI()
{
if(GUI.Button(new Rect(0,0,100,100),"加载音乐"))
{
musics.Clear(); //清空之前加载的音频文件
OpenFileDialog open = new OpenFileDialog(); //创建一个system32的打开文件窗口
open.Filter = "Wav和Ogg文件|*.wav;*.ogg"; //过滤筛选
open.Multiselect = true; //该文件窗口可以多选文件
if (open.ShowDialog() == DialogResult.OK)
{
fileNames = open.FileNames;
for (int i = 0; i < fileNames.Length; i++) //循环读取加载的文件
{
string fileName = fileNames[i];
www = new WWW("file://" + fileName); //www加载文件,不支持中文路径
StartCoroutine("LoadFile"); //等待文件加载完毕,开始协同函数
}
}
}
源码来自牛x的网友
这有什么错误吗?