// Update is called once per frame
 void Update()
 {
     for (int i = 0; i < TossLocations.Count; i++)
     {
         TossLocationInfo info = TossLocations[i];
         if (info.InUse && info.NextUse < Time.time)
         {
             info.InUse       = false;
             TossLocations[i] = info;
         }
     }
     if (CoinsInfo.Count > 0)
     {
         for (int i = CoinsInfo.Count - 1; i >= 0; i--)
         {
             CoinInfo Info = CoinsInfo[i];
             if (Info.OurRB)
             {
                 if (Info.OurRB.IsSleeping())
                 {
                     HandleCoinCleanup(Info);
                 }
             }
         }
     }
     HandleCoinToss();
 }
 void HandleCoinToss()
 {
     if (CoinPrefab && Tosses.Count + CoinsInfo.Count < NumTosses)
     {
         List <TossLocationInfo> NotInUse = TossLocations.FindAll(delegate(TossLocationInfo Info) { return(Info.InUse == false); });
         if (NotInUse.Count > 0)
         {
             int index = Random.Range(0, NotInUse.Count - 1);
             index = TossLocations.IndexOf(NotInUse[index]);
             TossLocationInfo Info = TossLocations[index];
             Info.InUse           = true;
             Info.NextUse         = Time.time + SpawnLocationDelay;
             TossLocations[index] = Info;
             CoinInfo TempInfo;
             TempInfo.OurCoin    = Instantiate(CoinPrefab, transform.position + Info.Offset, Quaternion.identity);
             TempInfo.OurRB      = TempInfo.OurCoin.GetComponent <Rigidbody>();
             TempInfo.OurRoll    = TempInfo.OurCoin.GetComponent <Roll>();
             TempInfo.OurResizer = TempInfo.OurCoin.GetComponent <Resizer>();
             CoinsInfo.Add(TempInfo);
         }
     }
 }