void Awake() { // Making this object persist through the scenes so I only have to add it to one. if (_instance == null) { gameObject.name = "[TSD instance]"; DontDestroyOnLoad(gameObject); _instance = this; } if (this != _instance) { Destroy(gameObject); } }
//--------------------------------------------------------------------------/ /// <summary> /// 起動時処理 /// </summary> //--------------------------------------------------------------------------/ void Start() { // セーブボタン saveButton.onClick.AddListener(() => { SoundManager.Instance.PlaySe(Se.Tap); // テキストファイルから文字列データをカンマ区切りで取り出す // NOTE: 先頭から順にbool,int,float,string型の値をテキストファイルに入れている var splitData = playerData.text.Split(','); // 取り出したデータをPlayerPrefsにセットする SaveManager.Instance.SetBool(SaveKey.TestData, bool.Parse(splitData[0]), "bool"); SaveManager.Instance.SetInt(SaveKey.TestData, int.Parse(splitData[1]), "int"); SaveManager.Instance.SetFloat(SaveKey.TestData, float.Parse(splitData[2]), "float"); SaveManager.Instance.SetString(SaveKey.TestData, splitData[3], "string"); // NOTE: TestSaveDataはクラス保存テスト用のクラス // 上記4つの値をセットしている var testSaveData = new TestSaveData( bool.Parse(splitData[0]), int.Parse(splitData[1]), float.Parse(splitData[2]), splitData[3] ); SaveManager.Instance.SetClass <TestSaveData>(SaveKey.TestData, testSaveData, "class"); // ここで実際にディスクにセットしたデータがセーブされる SaveManager.Instance.Save(); }); // ロードボタン loadButton.onClick.AddListener(() => { SoundManager.Instance.PlaySe(Se.Tap); // セーブしたデータを取り出す var boolValue = SaveManager.Instance.GetBool(SaveKey.TestData, subKey: "bool"); var intValue = SaveManager.Instance.GetInt(SaveKey.TestData, subKey: "int"); var floatValue = SaveManager.Instance.GetFloat(SaveKey.TestData, subKey: "float"); var stringValue = SaveManager.Instance.GetString(SaveKey.TestData, subKey: "string"); var classValue = SaveManager.Instance.GetClass <TestSaveData>(SaveKey.TestData, new TestSaveData(), subKey: "class"); // 取り出したデータを表示する playerDataText.text = $"{boolValue},{intValue},{floatValue},{stringValue}," + $"{classValue.BoolData},{classValue.IntData},{classValue.FloatData},{classValue.StringData}"; }); // 削除ボタン deleteButton.onClick.AddListener(() => { SoundManager.Instance.PlaySe(Se.Tap); SaveManager.Instance.DeleteAll(); }); }
// Start is called before the first frame update void Start() { _testDataObj = new TestSaveData(); Debug.Log("实例化一个数据类对象,用来存放具体数据"); uiInputTxt.onValueChanged.AddListener(GetInputTxt); uiBtnSave.onClick.AddListener( () => { BinaryTool.SaveBinaryData <TestSaveData>(_testDataObj, "DataFile"); Debug.Log("序列化对象, _testDataObj, 内容为:" + _testDataObj.inputStr); }); uiBtnShow.onClick.AddListener( () => { _testDataObj = BinaryTool.ReadBinaryData <TestSaveData>("DataFile"); Debug.Log("反序列化对象, _testDataObj, 读取内容为:" + _testDataObj.inputStr); uiTxtOutput.text = _testDataObj.inputStr; }); }