在Unity中 添加本地文档储存游戏数据
首先我们应该在Unity中创建一个C#脚本,将其命名为Inventory
脚本不用挂在任何物体上,只需要在命名空间之前写一句代码,如下:
代码写好之后保存,在Unity的文件栏中右键就会发现,创建文件夹上方多了一个Inventory,就是我们代码中的menuName ,而创建出来之后,文档的名字就是 NewItem,也就是我们的 fileName。
如果需要在文档中存数据,那就需要再代码中加东西,存什么类型的数据,就加什么类型的变量。
如下:
我们新建一个Item脚本,创建新的NewItem(物品) 将 Item 储存在NewInventory(背包)中
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
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中运行游戏,通过捡拾物品改变里面的值,第二次运行之后不会清零。