关于WWW加载有中文路径的问题
Posted Fei非非
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于WWW加载有中文路径的问题相关的知识,希望对你有一定的参考价值。
U3D的WWW加载虽然比较强大,功能很多,但是却不支持中文路径。这就有点杯具了,这个BUG到现在还没改过来……
如果只开发移动端和网页端,支持不支持也没关系。但假设是开发客户端较为大型的游戏,未免会用到Assetbundle加载,一旦用到就涉及用户是否将游戏放在有中文的路径上了。
一旦有中文,所有ASSETBUNDLE都将无法加载成功。
ASSETBUNDLE的路径假设有中文……
方法1:
FILESTREAM加载,再转换类型,这个方法还没测试,不过听说即便异步加载也会卡来卡去。
方法2:
判断该路径是否有中文,假设没有中文的话,按之前方法来读。 假设有中文的话复制一份assetbundle到persistentDataPath,然后根据persistentDataPath来用WWW加载读取 。
例如:
if(有中文)
{
//假设persistentDataPath中不存在assetbundle,则复制一份到persistentDataPath
if (!System.IO.File.Exists(Application.persistentDataPath + "/" + url))
{
System.IO.File.Copy(Application.streamingAssetsPath + "/AssetBundles_Windows/" + url, Application.persistentDataPath + "/" + url);
}
s = "file:///" + Application.persistentDataPath+ "/" + url;
}
这个方法还是挺拙劣的,期待有更好的解决方式。
方法2:
判断该路径是否有中文,假设没有中文的话,按之前方法来读。 假设有中文的话复制一份assetbundle到persistentDataPath,然后根据persistentDataPath来用WWW加载读取 。
例如:
if(有中文)
{
//假设persistentDataPath中不存在assetbundle,则复制一份到persistentDataPath
if (!System.IO.File.Exists(Application.persistentDataPath + "/" + url))
{
System.IO.File.Copy(Application.streamingAssetsPath + "/AssetBundles_Windows/" + url, Application.persistentDataPath + "/" + url);
}
s = "file:///" + Application.persistentDataPath+ "/" + url;
}
这个方法还是挺拙劣的,期待有更好的解决方式。
以上是关于关于WWW加载有中文路径的问题的主要内容,如果未能解决你的问题,请参考以下文章
关于加载离线SHP文件geodatabase文件所遇到的路径问题
关于SpringMvc中js和图片路径正确但是不能加载的问题