private IEnumerator SpawnBridges() { if (BridgeStart != null) { if (BridgeEnd != null) { BridgeEnd.GetComponent <Platform>().SetPositionToReach(); _BridgeStart.SetParent(BridgeParent); _BridgeEnd.SetParent(BridgeParent); var position = BridgeStart.position; position += new Vector3(_DistanceBetweenSpawns / 2, -_DistanceToTravel); do { var bridge = ObjectPooler.Instance.SpawnFromPool(_Pool.Name, position, Quaternion.identity); bridge.transform.SetParent(BridgeParent); bridge.transform.DOMoveY(bridge.transform.position.y + _DistanceToTravel, _TimeToMovePlatform); StartCoroutine(DespawnObjectAfterBridgePhase(_Pool.Name, bridge)); yield return(new WaitForSecondsRealtime(0.1f)); position += new Vector3(_DistanceBetweenSpawns, 0, 0); BridgeAmount++; } while (position.x + (_DistanceBetweenSpawns / 2) <= BridgeEnd.position.x + _CalculationMargin); ObstacleManager.Instance.SpawnObstacles(); yield return(new WaitForSecondsRealtime(_TimeToMovePlatform)); _AllBridgesSpawned = true; } } }
public void Setup() { _player = new Player("", "", PawnColor.BLUE); _bridgeEnd = new BridgeEnd(1, 1, 1); }