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


    Unity 小科普

    老规矩,先介绍一下 Unity 的科普小知识:

    • Unity是 实时3D互动内容创作和运营平台 。
    • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
    • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
    • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏
    • 🎬 博客主页:https://xiaoy.blog.csdn.net

    • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉

    • 🎄 学习专栏推荐:Unity系统学习专栏

    • 🌲 游戏制作专栏推荐:游戏制作

    • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

    • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

    • 📆 未来很长,值得我们全力奔赴更美好的生活✨

    • ------------------❤️分割线❤️-------------------------

    请添加图片描述


    Unity 实用小技能学习

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

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

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

    路径含义读写权限是否在包内
    Application.dataPathAssets目录只读
    Application.streamingAssetsPathAssets/流资源目录只读
    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
    Android平台/storage/emulated/0/Android/data//files
    IOS平台/var/mobile/Containers/Data/Application//Documents
    Windows%userprofile%\AppData\LocalLow
    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平台下的几种路径,可以作为示例看一下。
    代码:

        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);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述


    在这里插入图片描述

  • 相关阅读:
    力扣146. LRU 缓存
    CentOs虚拟机下openGauss的配置使用
    实战演练 | 在 MySQL 中计算每日平均日期或时间间隔
    Unity --- 视频播放与角色控制器
    EdgeX Foundry MQTT设备服务
    【网页设计】期末大作业:化妆品主题——绿色大气的html5响应式化妆品护肤品肌肤网页设计(11页)...
    【学习日志】2022.11.10 C++11常量表达式、用户定义字面量、原生字符串字面值、类的改进、Leetcode疼迅优选50提T1
    深度神经网络——贝叶斯与朴素贝叶斯定理
    【MATLAB教程案例16】基于GWO灰狼优化算法的函数极值计算matlab仿真及其他应用
    Java继承基础。
  • 原文地址:https://blog.csdn.net/zhangay1998/article/details/126569031