// Use this for initialization void Start() { scores = goalBeatController.GetBeatScore(); scoreLength = scores.Select(x => x.score.Count).OrderByDescending(x => x).First(); scoreDisplays = new List <Transform>(); scoreDisplayItems = new List <scoreDisplayItem>(); initialMainPanelHeight = mainPanel.offsetMin.y; int scoreIndex = 0; //foreach (var score in scores) foreach (var score in scores) { var inst = Instantiate <Transform>(ScorePanelPrefab, this.transform); inst.GetComponent <Canvas>().overrideSorting = true; var rect = inst.GetComponent <RectTransform>(); var prefabRect = ScorePanelPrefab.GetComponent <RectTransform>(); scoreDisplays.Add(inst); scoreDisplayItems.Add(new scoreDisplayItem { goalPosition = new Vector2(prefabRect.anchoredPosition.x, prefabRect.anchoredPosition.y), scoreDisplay = inst, score = score }); var eventPanel = inst.GetComponent <Transform>().Find("eventPanel"); for (int ev = 0; ev < scoreLength; ev++) { Transform itemToCreate; if (score.score[ev % score.score.Count]) { itemToCreate = prefabHitImage; } else { itemToCreate = prefabRestImage; } var _event = Instantiate <Transform>(itemToCreate, eventPanel); var _eventRect = _event.GetComponent <RectTransform>(); eventPanelWidth = eventPanel.GetComponent <RectTransform>().rect.width *canvas.scaleFactor; eventPanelHeight = eventPanel.GetComponent <RectTransform>().rect.height *canvas.scaleFactor; _eventRect.anchoredPosition = new Vector2(calculateEventXPosition(ev, scoreLength, eventPanelWidth, 0), _eventRect.anchoredPosition.y); scoreDisplayItems[scoreDisplayItems.Count - 1].events.Add(_event); } var iconTransform = inst.GetComponent <Transform>().Find("Icon"); var iconImageComponent = iconTransform.GetComponent <Image>(); var soundBankImage = soundBank.GetSoundBankItem(score.name).Icon; iconImageComponent.sprite = soundBankImage; //inst.parent = mainPanel.transform; scoreIndex += 1; } }