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

C++编程语言:抽象机制:泛型编程(Bjarne Stroustrup)
泛型编程(Generic Programming) 目录 24.1 引言(Introduction) 24.2 算法和(通用性的)提升(Algorithms and Lifting) 24.3 概念(此指模板参数的插件)(Concepts) 24.3.1 发现插件集(Discovering a Concept) 24.3.2 概念与约束(Concepts and Constraints) 24.4 具体化…...

Python面试宝典13 | Python 变量作用域,从入门到精通
今天,我们来深入探讨一下 Python 中一个非常重要的概念——变量作用域。理解变量作用域对于编写清晰、可维护、无 bug 的代码至关重要。 什么是变量作用域? 简单来说,变量作用域就是指一个变量在程序中可以被访问的范围。Python 中有四种作…...

基于最近邻数据进行分类
人工智能例子汇总:AI常见的算法和例子-CSDN博客 完整代码: import torch import numpy as np from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt# 生成一个简单的数据…...

DeepSeek V3 vs R1:大模型技术路径的“瑞士军刀“与“手术刀“进化
DeepSeek V3 vs R1:——大模型技术路径的"瑞士军刀"与"手术刀"进化 大模型分水岭:从通用智能到垂直突破 2023年,GPT-4 Turbo的发布标志着通用大模型进入性能瓶颈期。当模型参数量突破万亿级门槛后,研究者们开…...

一、TensorFlow的建模流程
1. 数据准备与预处理: 加载数据:使用内置数据集或自定义数据。 预处理:归一化、调整维度、数据增强。 划分数据集:训练集、验证集、测试集。 转换为Dataset对象:利用tf.data优化数据流水线。 import tensorflow a…...

指导初学者使用Anaconda运行GitHub上One - DM项目的步骤
以下是指导初学者使用Anaconda运行GitHub上One - DM项目的步骤: 1. 安装Anaconda 下载Anaconda: 让初学者访问Anaconda官网(https://www.anaconda.com/products/distribution),根据其操作系统(Windows、M…...

7层还是4层?网络模型又为什么要分层?
~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 一、为什么要分层 \quad 网络通信的复杂性促使我们需要一种分层的方法来理解和管理网络。就像建筑一样,我们不会把所有功能都混在一起…...

C++:抽象类习题
题目内容: 求正方体、球、圆柱的表面积,抽象出一个公共的基类Container为抽象类,在其中定义一个公共的数据成员radius(此数据可以作为正方形的边长、球的半径、圆柱体底面圆半径),以及求表面积的纯虚函数area()。由此抽象类派生出…...

C++ 泛型编程指南02 (模板参数的类型推导)
文章目录 一 深入了解C中的函数模板类型推断什么是类型推断?使用Boost TypeIndex库进行类型推断分析示例代码关键点解析 2. 理解函数模板类型推断2.1 指针或引用类型2.1.1 忽略引用2.1.2 保持const属性2.1.3 处理指针类型 2.2 万能引用类型2.3 传值方式2.4 传值方式…...

音视频入门基础:RTP专题(5)——FFmpeg源码中,解析SDP的实现
一、引言 FFmpeg源码中通过ff_sdp_parse函数解析SDP。该函数定义在libavformat/rtsp.c中: int ff_sdp_parse(AVFormatContext *s, const char *content) {const char *p;int letter, i;char buf[SDP_MAX_SIZE], *q;SDPParseState sdp_parse_state { { 0 } }, *s1…...