都知道 XML 和JSON 是 游戏存档 的存储 的标配。
那么 .asset能不能 作为 存档 存储 游戏 数据呢。
本文就.asset能不能 作为 存档 存储 游戏 数据 进行探讨。
.asset不能作为游戏存档来使用。因为再次启动.exe的时候,数据会恢复初始化。
在编辑器中 测试。
DataSave.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "New DataSave", menuName = "DataSave/DataSave")]
public class DataSave : ScriptableObject
{
public string name;
}
DataSaveManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DataSaveManager : MonoBehaviour {
public string null_str;
public Text text;
public InputField inputField;
public Text text_Data;//存档DataSave的内容
public DataSave[] dataSave;
public DataSave select_dataSave = null;
public int value = -1;
#region Singleton
public static DataSaveManager instance;
private void Awake()
{
instance = this;
}
#endregion
private void selectDataSave(int int_value)
{
select_dataSave = dataSave[int_value];
value = int_value;
}
public void selectDataSave_1()
{
selectDataSave(0);
}
public void selectDataSave_2()
{
selectDataSave(1);
}
public void selectDataSave_3()
{
selectDataSave(2);
}
public void selectDataSave_4()
{
selectDataSave(3);
}
public void selectDataSave_5()
{
selectDataSave(4);
}
public void saveDataSave()//Button_Save
{
Debug.Log(" "+ inputField.text);
if (inputField.text == null)
{
text.text = "NO input,please try again.";
}
else if (inputField.text != null)
{
text.text = inputField.text;
dataSave[value].name = inputField.text;
}
}
public void readDataSave()//Button_Read
{
if (select_dataSave == null
&& value == -1)
{
text_Data.text = "NO select DataSave,please try again";
}
else if (select_dataSave != null
&& value != -1)
{
text_Data.text = select_dataSave.name;
}
}
public void changeText()//InputField
{
if (text != null
&& inputField != null
)
{
//text.text = inputField.text;
}
}
}
在编辑器中成功了,接下来在.exe 中测试。
如果在编辑器中,改变 DataSave_1.asset和DataSave_2.asset 的组件DataSave的 变量 Name。
记得改变一下。
.asset不能作为游戏存档来使用。因为再次启动.exe的时候,数据会恢复初始化。
相关文章:
1.[Unity][UGUI]InputField回车输入显示
2.
3.
4.
5.