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在不同的平台下的路径是不同的
- windows的unity编辑器下是 unity 编辑器的工程Assets目录路径
- Win player:<包含可执行文件的文件夹路径>/Data
- Mac player:<应用程序路径>/<AppName.app>/Data
2.3 特点:
- 只读,
- 加密+压缩
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 updatevoid Start(){Debug.Log("Application.dataPath"+Application.dataPath);Debug.Log("Application.dataPath"+Application.dataPath+"/Readme");}// Update is called once per framevoid Update(){}
}

3 Application.streamingAssetsPath (只读)
3.1 Application.streamingAssetsPath
- streamingAssetsPath:
- 此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一下外部数据文件的路径
- windows的unity下,这个文件夹路径,其实就是 unity 编辑器的工程Assets目录路径下一个子文件夹
3.2 在unity的编辑器默认是没有的,也不显示
- 但是,在unity的编辑器默认是没有的,也不显示
- 需要手动创建
- 需要在工程里 手动创建这个文件夹,Application.streamingAssetsPath

3.3 特点:
- 只读,
- 加密+压缩
- 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 updatevoid 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 framevoid Update(){}
}

4 游戏持久化文件路径 persistentDataPath (可读可写)
4.1 persistentDataPath
- 持久化文件路径
- persistentDataPath:此属性用于返回一个持久化数据存储目录的路径(只读),
- 可以在此路径下存储一下持久化的数据文件。
- 对于同一平台,在不同程序中调用此属性时,其返回值是相同的,但是在不同的运行平台下,其返回值会不一样。
4.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 updatevoid 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 framevoid 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 updatevoid 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 framevoid Update(){}
}

相关文章:
unity学习21:Application类与文件存储的位置
目录 1 unity是一个跨平台的引擎 1.1 使用 Application类,去读写文件 1.2 路径特点 1.2.1 相对位置/相对路径: 1.2.2 固定位置/绝对路径: 1.3 测试方法,仍然挂一个C#脚本在gb上 2 游戏数据文件夹路径(只读&…...
17 一个高并发的系统架构如何设计
高并发系统的理解 第一:我们设计高并发系统的前提是该系统要高可用,起码整体上的高可用。 第二:高并发系统需要面对很大的流量冲击,包括瞬时的流量和黑客攻击等 第三:高并发系统常见的需要考虑的问题,如内存不足的问题,服务抖动的…...
Spring Boot 实例解析:配置文件
SpringBoot 的热部署: Spring 为开发者提供了一个名为 spring-boot-devtools 的模块来使用 SpringBoot 应用支持热部署,提高开发者的效率,无需手动重启 SpringBoot 应用引入依赖: <dependency> <groupId>org.springfr…...
pytorch图神经网络处理图结构数据
人工智能例子汇总:AI常见的算法和例子-CSDN博客 图神经网络(Graph Neural Networks,GNNs)是一类能够处理图结构数据的深度学习模型。图结构数据由节点(vertices)和边(edges)组成&a…...
计算机网络一点事(23)
传输层 端口作用:标识主机特定进程,TCP,UDP协议 端口号分类:服务器:0-1023,熟知 1024-49151 登记 客户端:49152-65535 功能:实现端到端,进程到进程的通信,…...
(9)下:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同。小例子的实验
(4)本实验代码的蓝本,是伊圣雨老师里的课本里的代码,略加改动而来的。 以下是 服务器端的代码: 每当收到客户端的报文时,就测试一下对应的 epoll 事件里的事件标志,不读取报文内容,…...
DeepSeek-R1模型1.5b、7b、8b、14b、32b、70b和671b有啥区别?
deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别?码笔记mabiji.com分享:1.5B、7B、8B、14B、32B、70B是蒸馏后的小模型,671B是基础大模型,它们的区别主要体现在参数规模、模型容量、性能表现、准确性、训练成本、推理成本…...
一、html笔记
(一)前端概述 1、定义 前端是Web应用程序的前台部分,运行在PC端、移动端等浏览器上,展现给用户浏览的网页。通过HTML、CSS、JavaScript等技术实现,是用户能够直接看到和操作的界面部分。上网就是下载html文档,浏览器是一个解释器,运行从服务器下载的html文件,解析html、…...
AI大模型开发原理篇-2:语言模型雏形之词袋模型
基本概念 词袋模型(Bag of Words,简称 BOW)是自然语言处理和信息检索等领域中一种简单而常用的文本表示方法,它将文本看作是一组单词的集合,并忽略文本中的语法、词序等信息,仅关注每个词的出现频率。 文本…...
基于微信小程序的实习记录系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
【LLM】DeepSeek-R1-Distill-Qwen-7B部署和open webui
note DeepSeek-R1-Distill-Qwen-7B 的测试效果很惊艳,CoT 过程可圈可点,25 年应该值得探索更多端侧的硬件机会。 文章目录 note一、下载 Ollama二、下载 Docker三、下载模型四、部署 open webui 一、下载 Ollama 访问 Ollama 的官方网站 https://ollam…...
【Elasticsearch】 Intervals Query
Elasticsearch Intervals Query 返回基于匹配术语的顺序和接近度的文档。 intervals 查询使用 匹配规则,这些规则由一小组定义构建而成。这些规则然后应用于指定 field 中的术语。 这些定义生成覆盖文本中术语的最小间隔序列。这些间隔可以进一步由父源组合和过滤…...
DeepSeek技术深度解析:从不同技术角度的全面探讨
DeepSeek技术深度解析:从不同技术角度的全面探讨 引言 DeepSeek是一个集成了多种先进技术的平台,旨在通过深度学习和其他前沿技术来解决复杂的问题。本文将从算法、架构、数据处理以及应用等不同技术角度对DeepSeek进行详细分析。 一、算法层面 深度学…...
Docker 部署 Starrocks 教程
Docker 部署 Starrocks 教程 StarRocks 是一款高性能的分布式分析型数据库,主要用于 OLAP(在线分析处理)场景。它最初是由百度的开源团队开发的,旨在为大数据分析提供一个高效、低延迟的解决方案。StarRocks 支持实时数据分析&am…...
【LLM-agent】(task6)构建教程编写智能体
note 构建教程编写智能体 文章目录 note一、功能需求二、相关代码(1)定义生成教程的目录 Action 类(2)定义生成教程内容的 Action 类(3)定义教程编写智能体(4)交互式操作调用教程编…...
29.Word:公司本财年的年度报告【13】
目录 NO1.2.3.4 NO5.6.7 NO8.9.10 NO1.2.3.4 另存为F12:考生文件夹:Word.docx选中绿色标记的标题文本→样式对话框→单击右键→点击样式对话框→单击右键→修改→所有脚本→颜色/字体/名称→边框:0.5磅、黑色、单线条:点…...
14 2D矩形模块( rect.rs)
一、 rect.rs源码 // Copyright 2013 The Servo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution. // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENS…...
【Unity3D】实现2D角色/怪物死亡消散粒子效果
核心:这是一个Unity粒子系统自带的一种功能,可将粒子生成控制在一个Texture图片网格范围内,并且粒子颜色会自动采样图片的像素点颜色,之后则是粒子编辑出消散效果。 Particle System1物体(爆发式随机速度扩散10000个粒…...
Linux - 进程间通信(3)
目录 3、解决遗留BUG -- 边关闭信道边回收进程 1)解决方案 2)两种方法相比较 4、命名管道 1)理解命名管道 2)创建命名管道 a. 命令行指令 b. 系统调用方法 3)代码实现命名管道 构建类进行封装命名管道&#…...
3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...
三、 实现; 三.三、编写应用程序; 此文主要是实现应用的主要编码工作。 1、 分层; 此例子主要分为UI、Helper、DAL等层。UI负责便签的界面显示;Helper主要是链接UI和数据库操作的中间层;DAL为对数据库的操…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
