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为对数据库的操…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
用鸿蒙HarmonyOS5实现国际象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码,使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...

【threejs】每天一个小案例讲解:创建基本的3D场景
代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,无需安装依赖,直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景(Scene) 使用 THREE.Scene(…...
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
文章目录 📌 前言🧰 一、前期准备✅ 安装 Kali Linux✅ 获取支持监听模式的无线网卡 🛠 二、使用 Kali Linux 进行 WiFi 安全测试步骤 1:插入无线网卡并确认识别步骤 2:开启监听模式步骤 3:扫描附近的 WiFi…...

AI书签管理工具开发全记录(十八):书签导入导出
文章目录 AI书签管理工具开发全记录(十八):书签导入导出1.前言 📝2.书签结构分析 📖3.书签示例 📑4.书签文件结构定义描述 🔣4.1. 整体文档结构4.2. 核心元素类型4.3. 层级关系4.…...

Java高级 |【实验八】springboot 使用Websocket
隶属文章:Java高级 | (二十二)Java常用类库-CSDN博客 系列文章:Java高级 | 【实验一】Springboot安装及测试 |最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot 静…...