数据存储
PlayerPrefs
PlayerPrefs的unity文档
以前用过现在想不起来了,有空补上。
ScriptableObject
ScriptableObject
刚学的,还热乎。
使用方式:
创建一个类,需要继承自:ScriptableObject
[CreateAssetMenu(menuName = "MySubMenue/Create MyScriptableObject ")]//在unity编辑器中可以在Project中右键,创建一个“ScriptableObject”的文件,
public class ShuJuCunShu : ScriptableObject
{
//ScriptableObject 是一个可独立于类实例来保存大量数据的数据容器
//一个对象存储一个数据
[TextArea(1, 10)] [Header("窗口标题")] public string _title;//创建两个字段,标题
[TextArea(1, 10)] [Header("窗体内容")] public string _count;//内容
//上面使用的C#的两个特性: [TextArea(1, 10)] 会让输入框不是一行,可以多行同时输入,方便检查错别字,
//[Header("窗口标题")] 将“窗口标题”中文显示在Inspector面板中。
}
创建完成之后可以看到创建的东西。
可以右键“Show in Explorer”查看他在文件甲中的位置。也可在在title和count中填入内容查看然后使用记事本打开这个东西,可以看到数据是使用ASCII码存储的。
使用:创建完成之后在别的地方使用需要有一个Public的引用
public ShuJuCunShu A;
然后将创建的ShuJuCunShu对象拖上去。
然后就可以访问到A._title了
public Text _text;
private vou Fun()
{
_text.tex = A._title;
}
以后如果要改Text的内容可以直接去上面那个引用的对象里面修改,不用再去代码里面修改了。
设置自己创建的对象
using UnityEngine;
[CreateAssetMenu(fileName = "NewCustomAsset", menuName = "Custom Asset")]
public class CustomAsset : ScriptableObject
{
[SerializeField]
public CustomData customData;
[SerializeField]
public List<CustomData> customData_List;
}
[System.Serializable]
public class CustomData
{
public string name;
public int age;
public Vector3 position;
public Image image1;
public Image image2;
}