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
相关文章推荐
- unity 协程
- 一些不错的文章链接记录
- Unity中导出iOS工程
- Unity资源加载与释放
- Unity3d Jenkins 打包Android
- unity学习笔记(1)-hello unity
- 游戏表格数据序列化自动生成工具
- 在unity向量空间内绘制几何(2):球面---重构《黑客帝国》的‘上帝机器’,Deus Ex Machina
- unity 常用的几种相机跟随
- Unity3D场景异步加载的实现案例
- Unity开发者如何使用VS进行单步,详情点击
- 【Unity】新手引导遮罩
- 【Unity】安卓/ios应用名本地化
- Unity3D获取物体的所有子物体对象(child)
- Unity3D写雷电游戏
- Unity让调试更加简单(一)
- Unity3D之Vector3.Dot(点积)和Vector3.Cross(叉积)的使用
- unity规范
- UnityShader快速上手指南(三)
- UnityShader快速上手指南(三)