Unity3D中加载本地或远程资源会用到WWW类,最使用Unity3D的WWW类加载本地磁盘资源时发现总是加载失败,先看看以下例子:
de >using System.Collections;
using UnityEngine;
public class WWWTest : MonoBehaviour
{
void Start()
{
StartCoroutine(Load());
}
private IEnumerator Load()
{
string path = "file://D:/file.txt";
WWW www = new WWW(path);
yield return www;
if (www.error != null)
{
Debug.LogError(www.error);
}
else
{
Debug.Log(www.text);
}
}
}de>
这段代码是从path路径加载一个文本文件,成功则打印文本内容,失败则打印异常信息。
以上Unity工程存放在D盘
创建D:/file.txt文件,内容是'Unity3D DDD'
创建E:/file.txt文件,内容是'Unity3D EEE'
一轮测试
path = file://D:/file.txt时运行结果为:Unity3D DDD
path = file://E:/file.txt时运行结果为:Unity3D DDD
两个路径,结果一样。两次测试都读取了'file://D:/file.txt'文件,有点怪异接着测
二轮测试
删掉D:/file.txt,path = file://E:/file.txt运行结果为:Couldn't open file /file.txt
结论
由以上两轮测试猜测,应该是de >file://E:/file.txtde>这个路径有问题。
解决方法很简单,使用 file:///即可~
网友评论