public void Load()
    {
        if (File.Exists(_saveFilePath) && new FileInfo(_saveFilePath).Length != 0)
        {
            var bf   = new BinaryFormatter();
            var file = File.Open(_saveFilePath, FileMode.Open);

            PlayerData data = (PlayerData)bf.Deserialize(file);
            file.Close();

            _maxLevel          = data.MaxLevel;
            _level             = data.Level;
            _money             = data.Money;
            _lastTime          = data.LastTime;
            _firstLaunch       = data.FirstLaunch;
            _tutorialCompleted = data.TutorialCompleted;
            UpgradesController.Instance.UpgradesDictionary = data.Upgrades;
            MoneyConverter.Notation     = data.Notation;
            _prestigeCrystals           = data.PrestigeCrystals;
            _prestigeCrystalsMultiplier = data.PrestigeCrystalsMultiplier;
            _totalMoneyEarned           = data.TotalMoneyEarned;
            DailyRewards dailyRewards = GetComponent <DailyRewards>();
            dailyRewards.LoadLastClaimTime(data.LastClaimTime);
            dailyRewards.LoadClaimCount(data.ClaimCount);

            SerializableOre.DeserializeOres(data.Items);
        }
        else if (!File.Exists(_saveFilePath))
        {
            File.Create(_saveFilePath).Dispose();
        }
    }
    //Save & Load -----------------------------------------------------------------------------

    public void Save()
    {
        var bf   = new BinaryFormatter();
        var file = File.Open(_saveFilePath, FileMode.Open);

        PlayerData data = new PlayerData();

        data.MaxLevel                   = _maxLevel;
        data.Level                      = _level;
        data.Money                      = _money;
        data.LastTime                   = (DateTime.UtcNow - EpochTimeStart).TotalSeconds;
        data.Items                      = SerializableOre.ConvertToSerializable(EquipmentController.Instance.Items);
        data.Upgrades                   = UpgradesController.Instance.UpgradesDictionary;
        data.TutorialCompleted          = _tutorialCompleted;
        data.FirstLaunch                = false;
        data.Notation                   = MoneyConverter.Notation;
        data.PrestigeCrystals           = _prestigeCrystals;
        data.PrestigeCrystalsMultiplier = _prestigeCrystalsMultiplier;
        data.TotalMoneyEarned           = _totalMoneyEarned;
        DailyRewards dailyRewards = GetComponent <DailyRewards>();

        data.LastClaimTime = dailyRewards.GetLastClaimTime();
        data.ClaimCount    = dailyRewards.GetClaimCount();

        bf.Serialize(file, data);
        file.Close();
    }