Webgl遇到的两个大坑
XML文件远程读取
我的xml文件存放在远程服务器端,我想直接远程下载访问,但这遇到了问题
首先,xml读取有两种方法
XmlDocument xml = new XmlDocument();
xml.LoadXml(string);
XmlDocument xml = new XmlDocument();
xml.Load(path);
loadxml是读取一个string字符串,从而写到xmldocument里,而load则是一个文件路径,要有后缀名
刚开始我是用load(远程链接)发现获取不到
然后我先用www下载,用www.text转成string字符传,接着用LoadXml读取
发现还是读取不到,再网上搜了半天,发现这个类StringReader,它把www读取的文本转化为另一种string字符串
虽然我debug出来两种字符串都一样,但是这个偏偏就能用,也希望有大佬给我解释一下
IEnumerator DownXml()
{
WWW xmlwww = new WWW("http://data.shuaiqzh.com/DancerMan.xml");
yield return xmlwww;
if (xmlwww.isDone)
{
System.IO.StringReader stringReader = new System.IO.StringReader(xmlwww.text);
stringReader.Read();
string result = stringReader.ReadToEnd();
stringReader.Close();
//print(xmlwww.text);
ReadXml(result);
}
xmlwww.Dispose();
}
void ReadXml(string path)
{
XmlDocument xml = new XmlDocument();
xml.LoadXml(path);
}
webgl远程加载ab包
这个问题是我把ab包放在服务器上 编辑器上正常下载和解压 但是到了浏览器上到解压的步骤时会报一条错误
Decompressing this format (1) is not supported on this platform
错误的大概意思就是平台不支持该格式解压
我到unity官方文档上查了一下 u3d文档
原来我使用的是默认的压缩格式LZMA 而webgl应该用LZ4的压缩格式。。。。所以你只要在打包的代码中这样写就可以了,还有就是目标平台也要写成WebGL
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.WebGL);