示例#1
0
        private void Migrate()
        {
            var gameSaveVersion = Migration.saveVersion;

            saveVersion = new PlayerPrefsData <int>("SAVE_VERSION", gameSaveVersion);
            saveVersion.Save();

            if (saveVersion > gameSaveVersion)
            {
                throw new UnityException($"Cannot migrate {saveVersion.Value}->{gameSaveVersion}");
            }

            Debug.Log($"STARTING VERSION MIGRATION: {saveVersion.Value}->{gameSaveVersion}");
            while (saveVersion.Value < gameSaveVersion)
            {
                Migration.Step(saveVersion);
                saveVersion.Value++;
                saveVersion.Save();
            }
            Debug.Log($"SAVE VERSION IS NOW CURRENT: {saveVersion.Value}");

            Debug.Log("Inventory: Migration successful!");
        }
示例#2
0
        protected override void Setup()
        {
            Debug.LogWarning("~~~~~~~~ Inventory.Awake is called");

            DontDestroyOnLoad(gameObject);

            saveVersion = new PlayerPrefsData <int>("saveVersion", 0);

            disableWait = new PlayerPrefsData <bool>("disableWait", false);

            firstLaunch = new PlayerPrefsData <bool>("firstLaunch", true);

            audioStatus = new PlayerPrefsData <AudioState>("audioStatus", AudioState.CreateDefault());

            playerState = new PlayerPrefsData <PlayerState>("playerState", PlayerState.CreateDefault());

            worldState = new PlayerPrefsData <WorldState>("worldState", WorldState.CreateDefault());

            currentCompanion = new PlayerPrefsData <CompanionData.ItemID>("currentCompanion", CompanionData.ItemID.NONE);

            ftueState = new PlayerPrefsData <FTUEState>("ftueState", FTUEState.CreateDefault());

            Migrate();
        }