// 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); } } }