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();
     });
 }
Esempio n. 3
0
    // 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;
        });
    }