IEnumerable <DrawingActivityInstance> AddActivityInstances(ILevelSection section) { var distributor = new FeatureDistributor(); var drawingCount = Random.Range(2, 4); return(distributor.ScatterElements(Enumerable.Range(0, drawingCount).ToList(), leftBounds: section.PlayArea.LeftPlayAreaEdge.x, rightBounds: section.PlayArea.RightPlayAreaEdge.x, instantiater: (xPos, idx) => new DrawingActivityInstance(Ressi, _root, idx, xPos))); }
void SpawnLetterPreviews() { var distinctLetters = _objectsInActivity .OfType <ConsumableLetter>() .Distinct(new ConsumableLetterComparer()) .OrderByDescending(i => i.Letter) .ToList(); var screenSize = Camera.main.OrthographicBounds(); var halfWidth = screenSize.extents.x / 2; var yPos = screenSize.center.y + (screenSize.extents.y / 2); var center = Section.PlayArea.RightTerrainEdge.x; var leftEdge = center - halfWidth; var rightEdge = center + halfWidth; var featureDistributor = new FeatureDistributor(); _letterPreview = featureDistributor.ScatterElements <ConsumableLetter, GameObject>(distinctLetters, leftEdge, rightEdge, (xPos, letter) => InstantiateLetterPreview(xPos, yPos, letter), varyPosition: false, shuffle: false) .ToList(); }