您的位置:首页 > 移动开发 > Unity3D

Unity对应各平台的路径配置,跟别人不一样的写法

2016-06-01 20:34 471 查看
/// <summary>
/// 根据平台和加载位置,返回资源的完整加载路径
/// </summary>
/// <returns>完整路径.</returns>
/// <param name="name">文件名</param>
/// <param name="path">资源的加载位置</param>
public static string GetLocalURL( string name = "", PathType path = PathType.persistent)
{
string URL = "";

string typePath = "";
try
{
if (path == PathType.persistent)
{
typePath = Application.persistentDataPath;
}
else
{
typePath = Application.streamingAssetsPath;
}
}
catch (Exception e)
{
Debug.LogError(e.ToString());
}

#if UNITY_STANDALONE_WIN || UNITY_EDITOR

URL = "file://" + typePath + "/" + name;

#elif UNITY_ANDROID

URL = typePath + "/"+name;

#elif UNITY_IOS

URL = "file://"+ typePath + "/"+name;

#endif

if (!File.Exists(URL))
{
if (path == PathType.persistent)
{
return GetLocalURL(name, PathType.streaming);
}
else
{

b6e0
Debug.Log("资源文件不存在:"+name);
}
}

return URL;
}


这是我自己用的一个获取资源路径的方法,跟网上能查到的有些不一样,如果按照其他人的写法不能实现,可以尝试下我这个。

反正我当时是按照官网上的写法写的,安卓上一直有问题...

------------------------------------------------------------------ 2016年6月23日补充--------------------------------------------------------------------

最近一直在做资源更新,整天跟文件打交道,之前的理解一直是稀里糊涂的。后来总结出以下的几点

1,application.streamingAssetes获取的路径是已经带了file:/或者jar:file:/协议的,application.persistentPath获取到的路径是不带协议的

2,streamingAssetes在android和ios上是只读的,并且不能用File操作

3,File操作的路径是不需要带文件协议的

因为这几个没搞清楚,所以本来一两天就能搞完的东西,硬是浪费了一周时间。

欢迎转载。转载请注明:
Hello光头原创
如有建议或意见,欢迎留言。
也欢迎大家加我qq,一起学习进步:1009570451
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: