예제 #1
0
    void LoadGameData()
    {
        if (!File.Exists(Application.persistentDataPath + "/save.bin"))
        {
            return;
        }

        FileStream fs = new FileStream(Application.persistentDataPath + "/save.bin", FileMode.Open);

        try
        {
            BinaryFormatter formatter = new BinaryFormatter();

            // Deserialize the hashtable from the file and
            // assign the reference to the local variable.
            GameSaveDataBase basesave = (GameSaveDataBase)formatter.Deserialize(fs);
            Debug.Log("SaveLoad ver:" + basesave.version);

            SaveDataConvert(ref basesave);
        }
        catch (System.Runtime.Serialization.SerializationException e)
        {
        }

        fs.Close();
    }
예제 #2
0
    public static void SaveDataConvert0to1(ref GameSaveDataBase basesave)
    {
        GameSaveDataV0 sb = (GameSaveDataV0)basesave;
        GameSaveDataV1 sn = new GameSaveDataV1();

        sn.version  = 1;
        sn.gold     = sb.gold;
        sn.glory    = sb.glory;
        sn.playtime = 0;

        basesave = sn;
    }
예제 #3
0
    public static void SaveDataConvert1to2(ref GameSaveDataBase basesave)
    {
        GameSaveDataV1 sb = (GameSaveDataV1)basesave;
        GameSaveDataV2 sn = new GameSaveDataV2();

        sn.version  = 2;
        sn.gold     = sb.gold;
        sn.glory    = sb.glory;
        sn.playtime = sb.playtime;
        sn.kills    = 0;

        basesave = sn;
    }
예제 #4
0
    void SaveDataConvert(ref GameSaveDataBase basesave)
    {
        if (basesave.version == 0)
        {
            GameSaveDataBase.SaveDataConvert0to0(ref basesave);
            //SaveDataConvert0to1(ref basesave);
        }

//		if (basesave.version == 1)
//		{
//			SaveDataConvert1to2(ref basesave);
//		}

        gameSavedata = (GameSaveDataV0)basesave;
    }
예제 #5
0
    public static void SaveDataConvert0to0(ref GameSaveDataBase basesave)
    {
        GameSaveDataV0 sn = (GameSaveDataV0)basesave;

        basesave = sn;
    }