前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【100个 Unity实用技能】| Unity中常用的几种路径 分析,不同平台路径总结

【100个 Unity实用技能】| Unity中常用的几种路径 分析,不同平台路径总结

作者头像
呆呆敲代码的小Y
发布2022-09-26 15:19:13
2.9K0
发布2022-09-26 15:19:13
举报
文章被收录于专栏:呆呆敲代码的小Y 公众号


Unity 实用小技能学习

【100个 Unity实用技能】| Unity中常用的几种路径 分析

在Unity中有很多种路径,尤其是在不同的平台上,同一种路径的写法可能最终是不一样的。

本文就来总结一下Unity中的几种路径,以及简单的使用方法。

路径

含义

读写权限

是否在包内

Application.dataPath

Assets目录

只读

Application.streamingAssetsPath

Assets/流资源目录

只读

Application.persistentDataPath

持久化目录

可读可写

Application.temporaryCachePath

临时缓存目录

只读

Resources

包内相对路径/Resources

只读

根据不同的情况可以选择不同的路径使用,本文主要是总结一下各路径的含义以及在不同平台的返回值

仅供参考,收藏使用更佳~


1.Application.dataPath

此路径在Unity工程目录下。

特点 通过这个路径可以访问项目中任何文件夹中的资源,不过只能在PC端使用,移动端是没有访问权限的

不同平台的实际路径:

平台

路径

Unity Editor

<项目文件夹路径>/Assets

Android平台

/data/app/xxx.xxx.xxx.apk。通常它直接指向 APK,如果正在运行拆分二进制构建,则它指向 OBB。

IOS平台

<播放器应用程序包的路径>/< AppName.app > /Data

Windows

<播放器应用程序包的路径>/Assets

Mac

<播放器应用程序包的路径>/Contents

WebGL

播放器数据文件文件夹的绝对 url(没有实际数据文件名)


2.Application.streamingAssetsPath

StreamingAsset文件夹中的内容则会原封不动的打入包中,因此StreamingAssets主要用来存放一些二进制文件。

在任何平台中总可以统一使用Application.streamingAssetsPath 属性来获得这一文件夹路径

特点: PC端可读写,移动端只读不可写。

由于在Android中,StreamingAssets中的文件包含在一个.jar压缩文件中,所以移动端时只能用过UnityWebRequest类来读取,PC则可以使用IO的File读取。

不同平台的实际路径:

平台

路径

Unity Editor

<项目文件夹路径>/StreamingAssets

Android平台

jar:file:///data/app/package name-1/base.apk!/assets

IOS平台

/var/containers/Bundle/Application/app sandbox/test.app/Data/Raw

Windows

<播放器应用程序包的路径>/Assets/StreamingAssets

Mac

<播放器应用程序包的路径>/Assets/StreamingAssets

WebGL

<播放器应用程序包的路径>/Assets/StreamingAssets


3.Application.persistentDataPath

一个持久化数据存储目录的路径,可以在此路径下存储一些持久化的数据文件。 这个路径可读、可写,一般网络下载的资源都存在这个路径。 同时在使用热更新的时候可使用的路径,推荐使用。

特点:

  • 可读写,只能运行时才能写入或者读取。 无法将数据提前存入这个路径
  • 无内容限制。可从 StreamingAsset 中读取二进制文件或者从 AssetBundle 读取文件来写入 PersistentDataPath 中
  • 可使用UnityWebRequest类来读取 也可以用File类API(如File.ReadAllText)读写PersistentDataPath文件夹中的文件(安卓下唯一可以用File类的路径)

不同平台的实际路径:

平台

路径

Unity Editor

%userprofile%\AppData\LocalLow<companyname><productname>

Android平台

/storage/emulated/0/Android/data//files

IOS平台

/var/mobile/Containers/Data/Application//Documents

Windows

%userprofile%\AppData\LocalLow<companyname><productname>

Mac

~/Library/Application Support/unity.company name.product name

WebGL

/idbfs/


4.Application.temporaryCachePath

此属性返回一个临时数据的缓存目录,跟Application.persistentDataPath类似,但是在IOS上不能被自动备份。一般情况下不会使用此路径。

不同平台的实际路径:

平台

路径

Unity Editor

%userprofile%\AppData\Local\Temp

Android平台

/storage/emulated/0/Android/data//cache

IOS平台

/var/mobile/Containers/Data/Application/app sandbox/Library/Caches

Windows

%userprofile%\AppData\Local\Temp

Mac

/var/xxx/xxx/xxx/T/

WebGL

未找到

5.Resources

Resources文件夹是Unity里自动识别的一种文件夹,可在Unity编辑器的Project窗口里创建,并将资源放置在里面。

是作为一个Unity的保留文件夹出现的,Resources文件夹下的资源不管是否有用,全部会打包进.apk或者.ipa,并且打包时会将里面的资源压缩处理

特点:

  • 只读路径,不能动态修改,一般用于存放一下固定不更改的资源。
  • 放在这里文件夹中的资源在打包的时候会压缩后全部打包。
  • 可以通过Resources.Load(“path”);进行动态加载

这是MAC平台下的几种路径,可以作为示例看一下。 代码:

代码语言:javascript
复制
    void Start()
    {
        Debug.Log("路径总结。1.Application.dataPath:||" + Application.dataPath);
        Debug.Log("路径总结。2.Application.streamingAssetsPath:||" + Application.streamingAssetsPath);
        Debug.Log("路径总结。3.Application.persistentDataPath||" + Application.persistentDataPath);
        Debug.Log("路径总结。4.Application.temporaryCachePath:||" + Application.temporaryCachePath);
    }
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ----
  • Unity 实用小技能学习
    • 【100个 Unity实用技能】| Unity中常用的几种路径 分析
      • 1.Application.dataPath
      • 2.Application.streamingAssetsPath
      • 3.Application.persistentDataPath
      • 4.Application.temporaryCachePath
      • 5.Resources
相关产品与服务
数据库一体机 TData
数据库一体机 TData 是融合了高性能计算、热插拔闪存、Infiniband 网络、RDMA 远程直接存取数据的数据库解决方案,为用户提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle、SQL Server、MySQL 和 PostgreSQL 等各种主流数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档