private IEnumerator SelectPositionCoroutine(BrRing curr, BrRing target) { var startTime = Time.time; var endTime = startTime + Delay; outterIndexies.Clear(); foreach (var i in innerIndexies) { if (!target.IsInside(locations[i].transform.position)) { outterIndexies.Add(i); } if (Time.time - startTime > 0.005) { yield return(null); startTime = Time.time; } } yield return(null); outterIndexies.ForEach(i => innerIndexies.Remove(i)); while (Time.time < endTime) { yield return(null); } int selectedIndex = -1; if (outterIndexies.Count > 0) { selectedIndex = outterIndexies.RandomSelection(random); } else if (innerIndexies.Count > 0) { selectedIndex = innerIndexies.RandomSelection(random); } else { yield break; } if (PhotonNetwork.IsMasterClient) { photonView.RPC(nameof(DropAirSupplyRpc), RpcTarget.All, selectedIndex); } }