打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unity3D WWW用file协议下载失败问题
userphoto

2015.06.29

关注

Unity3D中加载本地或远程资源会用到WWW类,最使用Unity3D的WWW类加载本地磁盘资源时发现总是加载失败,先看看以下例子:

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);        }    }}

这段代码是从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

结论

由以上两轮测试猜测,应该是file://E:/file.txt这个路径有问题。
多次测试后发现写成file://E:\file.txt时问题解决。

在Windows上运行Unity3D,WWW用file协议加载文件时,路径部分必需用"\",
其它平台未测,原理一样,路径分隔符可考虑用System.IO.Path.PathSeparator

标签:unity3d, 游戏资源管理

已有 2 条评论

  1. hejianchun

    你说错了,是要释放www。

    1. 测试结果的确是路径分隔符问题,跟是否释放www无关

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
[unity3d]保存文件到本地and加载本地文件
Unity3d 如何动态加载非Assets路径下的图片
2.7.1 如何在自己的目录执行程式
python 相对路径打开文件夹
Ubuntu下service中的可执行程序如何访问程序所在目录下的文件
linux 百度云bpcs_uploader上传 下载 删除等操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服