/// <summary>
    /// Spawns coins with a chance by time. 'common' coins will always be spawned on random locations.
    /// </summary>
    /// <param name="_coinTypesAmount"></param>
    /// <param name="_time"></param>
    /// <returns></returns>
    public List <CoinType> GetCoinTypesToSpawn(int _coinTypesAmount, float _time)
    {
        CoinTypeBySpawnChancesPairByTimePair _coinTypeBySpawnChancesByTimePair = null;

        for (int i = 0; i < coinTypeBySpawnChancesByTimePairs.Count; i++)
        {
            CoinTypeBySpawnChancesPairByTimePair _currentCoinTypeBySpawnChancesByTimePair = coinTypeBySpawnChancesByTimePairs[i];

            if (i >= coinTypeBySpawnChancesByTimePairs.Count - 1)
            {
                _coinTypeBySpawnChancesByTimePair = _currentCoinTypeBySpawnChancesByTimePair;
            }
            else
            {
                float _currentTime = _currentCoinTypeBySpawnChancesByTimePair.Time;
                float _nextTime    = coinTypeBySpawnChancesByTimePairs[i + 1].Time;

                if (_time >= _currentTime && _time < _nextTime)
                {
                    _coinTypeBySpawnChancesByTimePair = _currentCoinTypeBySpawnChancesByTimePair;
                    break;
                }
            }
        }

        List <CoinType> _coinTypes = new List <CoinType>();

        for (int i = 0; i < _coinTypesAmount; i++)
        {
            CoinType _coinType = _coinTypeBySpawnChancesByTimePair.GetRandomCoin();
            _coinTypes.Add(_coinType);
        }
        return(_coinTypes);
    }
    private void CheckCombinedChance()
    {
        for (int i = 0; i < coinTypeBySpawnChancesByTimePairs.Count; i++)
        {
            float _combinedChance = 0;

            CoinTypeBySpawnChancesPairByTimePair _coinTypeBySpawnChancesByTimePair = coinTypeBySpawnChancesByTimePairs[i];
            _coinTypeBySpawnChancesByTimePair.CoinTypeBySpawnChancePairs.ForEach(x => _combinedChance += x.Chance);

            if (_combinedChance != 1)
            {
                Debug.LogError("Combined spawn chance of coinTypeBySpawnChancesByTimePair with time " + _coinTypeBySpawnChancesByTimePair.Time + " is " + _combinedChance + ", should be 1");
            }
        }
    }