private void ChangePavilon() { Pavilon randomPavilon; // Pick new one until different barriers is picked do { randomPavilon = PickRandomPavilon(listOfAllPavilons); } while (randomPavilon == currentPavilon); currentPavilon = randomPavilon; Debug.Log("Current pavilon: " + currentPavilon.GetPavilonName()); }
// Use this for initialization void Start() { teethPavilon = new TeethPavilon(listOfTeethBarriers); seaPavilon = new SeaPavilon(listOfSeaBarriers); spacePavilon = new SpacePavilon(listOfSpaceBarriers); // TODO: Initialize other pavilons by their type (PavilonType : Pavilon) // Load all barriers and their initial position // TODO: Add other pavilons to the list of all pavilons listOfAllPavilons = new List<Pavilon>() { teethPavilon, seaPavilon, spacePavilon }; foreach (var pavilon in listOfAllPavilons) { foreach (var barrier in pavilon.GetBarriers()) { barrier.SetActive(false); pavilon.LoadInitialPosition(barrier); } } /* Choose current pavilon and the first barrier. We always want to start with the first barrier of the teeth pavilon which has good starting conditions (some space at the beginning), but first we must choose any barrier prior to the first one to act as a "scenery". */ currentPavilon = teethPavilon; //firstBarrier = currentPavilon.GetBarriers().First(); firstBarrier = PickRandomBarrier(currentPavilon.GetBarriers().Skip(1).ToList()); // Get screen width and height + world coordinates of axis x int screenPixelWidth = Camera.main.pixelWidth; int screenPixelHeight = Camera.main.pixelHeight; worldCoordX = Camera.main.ScreenToWorldPoint(new Vector2(screenPixelWidth, screenPixelHeight))[0]; // Set first barrier and its length firstBarrier.SetActive(true); queueOfBarriers = new Queue<GameObject>(); queueOfBarriers.Enqueue(firstBarrier); barrierLengthInCurrentPavilon = currentPavilon.GetBarrierLength(); // First barrier must be shifted a bit to the left; translate the first barrier to suitable position firstBarrier.transform.Translate(new Vector2(Camera.main.transform.position[0] - firstBarrier.transform.position.x - 20f, Camera.main.transform.position[1])); lastBarrier = firstBarrier; // Set second barrier just to be sure; generate next barriers with Update() GenerateBarrier(currentPavilon.GetBarriers().First()); GenerateBarrier(); // Two barriers generated so far currentObstacleRepetition = 3; xGenerationOffset = 5; }