Unity游戏存档 (将游戏数据储存至本地文档)

在Unity中 添加本地文档储存游戏数据
首先我们应该在Unity中创建一个C#脚本,将其命名为Inventory
脚本不用挂在任何物体上,只需要在命名空间之前写一句代码,如下:

代码写好之后保存,在Unity的文件栏中右键就会发现,创建文件夹上方多了一个Inventory,就是我们代码中的menuName ,而创建出来之后,文档的名字就是 NewItem,也就是我们的 fileName。

如果需要在文档中存数据,那就需要再代码中加东西,存什么类型的数据,就加什么类型的变量。
如下:

我们新建一个Item脚本,创建新的NewItem(物品) 将 Item 储存在NewInventory(背包)中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
//这里我们重新创建一个文档,NewItem用作储存物品信息,刚刚的 NewInventory 储存背包信息。
[CreateAssetMenu(fileName = "New Item",menuName = "Inventory/New Item")]
public class Item : ScriptableObject {
 
    public string itemName; //物品名字
    public Sprite itemImage;//物品图片
    public int itemHeld;    //物品数量
    public string itemInfo; //物品介绍
 
    // Use this for initialization
    void Start () {
         
    }
     
    // Update is called once per frame
    void Update () {
         
    }
}

在 Inventory 中创建一个列表,储存数据,每一条数据都是一个Item

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
[CreateAssetMenu(fileName = "New Item", menuName = "Inventory/New Inventory")]
public class Inventory : ScriptableObject {
 
    //这行新增的就是我们给文档中储存的数据类型,比如现在是一个列表的类型
    public List<Item> itemList = new List<Item>();
     
    // Use this for initialization
    void Start () {
         
    }
     
    // Update is called once per frame
    void Update () {
         
    }
}

这样点击创建出来的NewItem 和 NewInventory 就会发现里面有数据可以改变了。

 

 

 

 用这种方法创建出来的文档可以使数据储存在本地中,在Unity中运行游戏,通过捡拾物品改变里面的值,第二次运行之后不会清零。

posted @   多见多闻  阅读(2632)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示