Unity中的简单数据存储办法

2023-09-18 21:45:05

这段代码演示了Unity中的简单数据存储办法 

当涉及到不同类型的存储时,下面是一些示例代码来演示在Unity中如何使用不同的存储方法:

1. 临时存储示例代码(内存变量):

```csharp
// 定义一个静态变量来存储临时计分
public static int score = 0;

// 在某个事件触发时更新计分
public void UpdateScore()
{
    score += 10;
    Debug.Log("Score: " + score);
}
```

在上述示例中,我们使用一个静态变量 `score` 来存储临时计分。当某个事件触发时,我们可以通过增加10来更新计分,并在控制台中打印出计分。

2. 本地存储示例代码(PlayerPrefs):

```csharp
// 存储玩家姓名
string playerName = "Tom";
PlayerPrefs.SetString("PlayerName", playerName);

// 获取存储的玩家姓名
string savedName = PlayerPrefs.GetString("PlayerName");
Debug.Log("Player Name: " + savedName);
```

在上述示例中,我们使用PlayerPrefs来存储和获取玩家姓名。首先,我们使用 `SetString` 方法将玩家姓名存储为键值对,然后使用 `GetString` 方法获取存储的玩家姓名,并在控制台中打印出来。

3. 本地存储示例代码(文件操作):

```csharp
// 写入数据到文件
string data = "Hello, World!";
string filePath = Application.persistentDataPath + "/data.txt";
File.WriteAllText(filePath, data);

// 从文件中读取数据
string readData = File.ReadAllText(filePath);
Debug.Log("Data from file: " + readData);
``

`Application.persistentDataPath默认是本地路径的C:/Users/leo/AppData/LocalLow/DefaultCompany/项目名

在上述示例中,我们使用 `WriteAllText` 方法将字符串数据写入到本地文件。首先,我们定义一个字符串数据 `data` 和一个文件路径 `filePath`,然后调用 `WriteAllText` 方法将数据写入到指定的文件中。接下来,我们使用 `ReadAllText` 方法从文件中读取数据,并在控制台中打印出来。

这些示例代码展示了临时存储和本地存储的两种方法,其中临时存储使用内存变量示例,而本地存储使用PlayerPrefs和文件操作示例。

请注意,在实际开发中,你可能需要根据具体需求来适应代码,比如添加错误处理、数据格式转换等。此外,对于更复杂的本地存储需求,如存储大量数据或复杂数据结构,你可以考虑使用SQLite数据库或其他适合的方法来进行存储和访问操作。

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.SceneManagement;

public class FileSave : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 存储玩家姓名
        string playerName = "Tom";
        PlayerPrefs.SetString("PlayerName", playerName);
        // 获取存储的玩家姓名
        string savedName = PlayerPrefs.GetString("PlayerName");
        Debug.Log("Player Name: " + savedName);


        // 写入数据到文件
        string data = "Hello, World!";
        string filePath = Application.persistentDataPath + "/leo.txt";
        File.WriteAllText(filePath, data);
        Debug.Log(Application.persistentDataPath);
        // 从文件中读取数据
        string readData = File.ReadAllText(filePath);
        Debug.Log("Data from file: " + readData);

        SceneManager.LoadScene("leo02");//根据名字加载其他场景



    }




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

更多推荐

MyBatis高级

文章目录一、动态sql1、if2、choose...when...otherwise...3、where4、set5、foreach6、trim7、Sql片段二、分页1、分页的使用步骤1.1、导入maven依赖2、mybatis配置文件中指定方言3、java代码测试三、mybatis多表查询1、一对一2、一对多3、多对

Docker 一键安装Confluence(已支持最新版本)

Docker一键安装Confluence(已支持最新版本)本文用于Confluence在Docker的安装,仅用于记录安装方式Jira也可以参考这种方式安装,只有细微差别转载请注明来源Linux安装可参考链接Windows安装可查考链接条件允许时,请优先选择CentOS7原生安装一、查找想要的版本跟着文档走,不想换版本

23个销量最高的3D扫描仪【2023】

如果你可以3D扫描它,你就可以3D打印它。市场上3D扫描仪的种类和质量非常丰富,机器尺寸、功能和价格各异。这样的选择虽然本身是一件很棒的事情,但也会让从无用的东西中挑选出宝石成为一件苦差事。推荐:用NSDT编辑器快速搭建可编程3D场景无论你是在寻找适合学生或业余爱好者的完美入门级扫描仪、具有更好软件和工作流程的更强大的

Talk | ICCV’23 清华赵天辰:Ada3D-基于动态推理的3D感知模型压缩及软硬件协同优化

​本期为TechBeat人工智能社区第533期线上Talk!北京时间9月21日(周四)20:00,清华大学博士生—赵天辰的Talk已准时在TechBeat人工智能社区开播!他与大家分享的主题是:“Ada3D-基于动态推理的3D感知模型压缩及软硬件协同优化”,他介绍了他们提出的动态推理框架Ada3D,并进一步介绍了在硬件

Nginx服务配置及相关模块

目录一.Nginx配置文件1.1.主配置文件解析1.2.子配置文件启用二.子配置文件使用2.1.创建虚拟主机实验2.2.基于端口虚拟主机实验三.Nginx模块3.1.access模块3.2.自定义错误页面3.3.状态页开启一.Nginx配置文件1.1.主配置文件解析①yum安装主配置文件位置:/etc/nginx/ng

vue+express、gitee pm2部署轻量服务器

一、代码配置前后端接口都保持127.0.0.1:3000vue创建文件pm2.config.cjsmodule.exports={apps:[{name:'xin-web',//应用程序的名称script:'npm',//启动脚本args:'rundev',//启动脚本的参数cwd:'/home/vue/xin_web

vue基础知识十三:Vue中的$nextTick有什么作用?

一、NextTick是什么官方对其的定义在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM什么意思呢?我们可以理解成,Vue在更新DOM时是异步执行的。当数据发生变化,Vue将开启一个异步更新队列,视图需要等队列中所有数据变化完成之后,再统一进行更新举例一下Html结构{{me

深信服安全GPT 2.0升级,开启安全运营“智能驾驶”旅程

9月22日,深信服对外展示安全GPT落地成果与2.0升级能力。来自各行业权威嘉宾代表:美的集团首席信息安全官(CISO)兼软件工程院院长、欧洲科学院院士(MAE)、IEEEFellow、IETFellow、ACM杰出科学家、AAIAFellow刘向阳、北汽福田汽车股份有限公司集团信息安全部高级经理兼欧辉新能源网络安全部

C++&QT day9

完善登录框点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。如果账号和密码匹配,则弹出信息对话框,给出提示信

IM即时通讯系统[SpringBoot+Netty]——梳理(总)

文章目录一、为什么要自研一套即时通讯系统1、实现一个即时通讯系统有哪些方式1.1、使用开源产品做二次开发或直接使用1.2、使用付费的云服务商1.3、自研2、如何自研一套即时通讯系统2.1、早期即时通讯系统是如何实现2.2、一套即时通讯系统的基本组成2.3、当下的即时通讯系统常用架构2.4、总结二、基础数据的开发1、导入

springboot班级综合测评管理系统springboot005

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路,向着优秀程序员前行!🍅更多优质项目👇🏻👇🏻可点击下方获取🍅文章底部或评论区获取🍅Java项目精品实

热文推荐