当前位置: 首页 > article >正文

unity学习21:Application类与文件存储的位置

目录

1 unity是一个跨平台的引擎

1.1 使用 Application类,去读写文件

1.2 路径特点

1.2.1 相对位置/相对路径:

1.2.2 固定位置/绝对路径:

1.3 测试方法,仍然挂一个C#脚本在gb上

2 游戏数据文件夹路径(只读)Application.dataPath 

2.1 Application.dataPath

2.2 跨平台时不同,相对路径需要拼接外部路径

2.3 特点:

2.4 测试

3 Application.streamingAssetsPath (只读)

3.1 Application.streamingAssetsPath

3.2 在unity的编辑器默认是没有的,也不显示

3.3 特点:

3.4 测试

4 游戏持久化文件路径  persistentDataPath (可读可写)

 4.1 persistentDataPath

4.2 特点

4.3 测试

5  游戏的临时文件夹 Application.temporaryCachePath

5.1 Application.temporaryCachePath

5.2  测试


1 unity是一个跨平台的引擎

  • unity输出的游戏包,可以适应各种平台
  • 比如 android ,  ios , 和一些主机游戏平台

1.1 使用 Application类,去读写文件

  • 比如 Application.datapath
  • 比如 Application.persistenpath
  • 知道文件在哪儿,才可以去读,才可以去存

1.2 路径特点

1.2.1 相对位置/相对路径:

  • dataPath和streamingAssetsPath这两个属性的返回值一般是相对于程序安装目录的位置,由于是相对位置适用于在多平台移植中设置要读取外部数据文件的路径
  • 并且者2个文件夹时只读的

1.2.2 固定位置/绝对路径:

  • persistentDataPath和temporaryCachePath这两个属性的返回值一般是程序所在平台的固定位置,对于不同的平台,其位置是不一样的,适合存放程序运行过程中产生的一些数据文件
  • 可读可写

1.3 测试方法,仍然挂一个C#脚本在gb上

2 游戏数据文件夹路径(只读)Application.dataPath 

2.1 Application.dataPath

  • Application.dataPath
  • 此属性用于返回程序的数据文件所在文件夹的路径(只读)。
  • 返回路径为相对路径,不同的游戏平台的数据文件保存路径不同。
  • windows的unity编辑器下,这个文件夹路径,其实就是 unity 编辑器的工程Assets目录路径

2.2 跨平台时不同,相对路径需要拼接外部路径

  • unity可以跨平台,Application.dataPath在不同的平台下的路径是不同的
  1. windows的unity编辑器下是 unity 编辑器的工程Assets目录路径
  2. Win player:<包含可执行文件的文件夹路径>/Data
  3. Mac player:<应用程序路径>/<AppName.app>/Data

2.3 特点:

  1. 只读,
  2. 加密+压缩

2.4 测试

  • Application.dataPath                            //返回的就是unity现在项目的Assets目录
  • Application.dataPath+"/Readme"        //返回的是拼接的路径下的文件
  • "Application.dataPath"+Application.dataPath+"/Readme"

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ApplicationTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Application.dataPath"+Application.dataPath);
        Debug.Log("Application.dataPath"+Application.dataPath+"/Readme");
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

3 Application.streamingAssetsPath (只读)

3.1 Application.streamingAssetsPath

  • streamingAssetsPath:
  • 此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一下外部数据文件的路径
  • windows的unity下,这个文件夹路径,其实就是 unity 编辑器的工程Assets目录路径下一个子文件夹

3.2 在unity的编辑器默认是没有的,也不显示

  • 但是,在unity的编辑器默认是没有的,也不显示
  • 需要手动创建
  • 需要在工程里 手动创建这个文件夹,Application.streamingAssetsPath

3.3 特点:

  1. 只读,
  2. 加密+压缩
  • Application.streamingAssetsPath
  • 游戏的配置文件:比如存档? mod修改?
  • 一些不需要加密的二进制文件

3.4 测试

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ApplicationTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Application.dataPath"+Application.dataPath);
        Debug.Log("Application.dataPath"+Application.dataPath+"/Readme");
        Debug.Log("Application.persistentDataPath"+Application.persistentDataPath);
        Debug.Log("Application.streamingAssetsPath"+Application.streamingAssetsPath);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

4 游戏持久化文件路径  persistentDataPath (可读可写)

 4.1 persistentDataPath

  • 持久化文件路径
  • persistentDataPath:此属性用于返回一个持久化数据存储目录的路径(只读),
  • 可以在此路径下存储一下持久化的数据文件。
  • 对于同一平台,在不同程序中调用此属性时,其返回值是相同的,但是在不同的运行平台下,其返回值会不一样。

4.2 特点

  1. 可读,可写
  2. 可见,不加密,不压缩,方便阅读和拷贝
  • 存储的文职,并不在 unity的项目的Assets这里了
  • 可以看到下面的测试结果,这个persistantDataPath 是存储在C盘的。也是跨平台的

4.3 测试

  • Application.persistantDataPath          //返回的就是unity现在项目的Assets目录
  • 游戏的配置,都存储在这个文件路径下
  • 游戏存档,在 Roaming下?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ApplicationTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Application.dataPath"+Application.dataPath);
        Debug.Log("Application.dataPath"+Application.dataPath+"/Readme");
        Debug.Log("Application.persistentDataPath"+Application.persistentDataPath);
        Debug.Log("Application.streamingAssetsPath"+Application.streamingAssetsPath);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}


 

5  游戏的临时文件夹 Application.temporaryCachePath

5.1 Application.temporaryCachePath

  • temporaryCachePath:
  • 此属性用于返回一个临时数据的缓存目录(只读)。
  • 对于同一平台,在不同程序中调用此属性时,其返回值是相同的,但是在不同的运行平台下,其返回值是不一样的。
  • 游戏读写文件时的临时的保存文件夹,可能就是类缓存之类的吧

5.2  测试

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ApplicationTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Application.dataPath"+Application.dataPath);
        Debug.Log("Application.dataPath"+Application.dataPath+"/Readme");
        Debug.Log("Application.persistentDataPath"+Application.persistentDataPath);
        Debug.Log("Application.streamingAssetsPath"+Application.streamingAssetsPath);
        Debug.Log("Application.temporaryCachePath"+Application.temporaryCachePath);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}


http://www.kler.cn/a/523225.html

相关文章:

  • Cannot resolve symbol ‘XXX‘ Maven 依赖问题的解决过程
  • 省市区三级联动
  • Spring Boot 无缝集成SpringAI的函数调用模块
  • 【PostgreSQL内核学习 —— (WindowAgg(一))】
  • 下载arm架构的deb包的方法
  • 【Spring】Spring启示录
  • WS2812 梳理和颜色表示方法的对比:RGB和HSV
  • 两数之和II-输入有序数组
  • Linux一键巡检脚本
  • c++学习第十四天
  • Android Studio 新版本24.2.2 运行后自动切到 LogCat
  • K8S中数据存储之配置存储
  • 【股票数据API接口33】如何获取股票当天逐笔交易数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • Object类(3)
  • 24-25出差交流体会-25-01-28
  • 虚拟世界中的社交互动:Facebook如何改变元宇宙中的沟通方式
  • 网络工程师 (5)系统可靠性
  • 神经网络|(七)概率论基础知识-贝叶斯公式
  • Deepseek-R1模型背后的中国AI突围之路
  • Ollama+DeepSeek本地大模型部署
  • 上位机知识篇---DDSSDK
  • 【算法】记忆化搜索
  • RoboVLM——通用机器人策略的VLA设计哲学:如何选择骨干网络、如何构建VLA架构、何时添加跨本体数据
  • 网站结构优化:加速搜索引擎收录的关键
  • 【AI论文】扩散对抗后训练用于一步视频生成总结
  • 菜鸟之路Day10一一集合进阶(三)