public void GenerateMoneyAtLocation(int MoneyValue, Vector3 Location, float SpawnRadius = 0.0f)
    {
        int toPay = MoneyValue;

        CoinData.Sort(SortCoinDataByValue);

        FCoinData toSpawn = null;

        while ((toSpawn = GetFirstAffordableCoin(toPay)) != null)
        {
            Vector3 randOffset = Random.insideUnitSphere * SpawnRadius;

            GameObject coinObj = Instantiate(toSpawn.CoinPrefab, Location + randOffset, Quaternion.identity);

            if (coinObj != null)
            {
                C_Coin coinScript = coinObj.GetComponent <C_Coin>();

                if (coinScript != null)
                {
                    coinScript.CoinValue = toSpawn.Value;
                }
            }

            toPay -= toSpawn.Value;
        }
    }
 public static int SortCoinDataByValue(FCoinData a, FCoinData b)
 {
     return(-a.Value.CompareTo(b.Value));
 }