private void Start() { _gamePreset = FindObjectOfType <PresetHolder>().gamePreset.timelinePreset; descriptionText.text = _gamePreset.description; LoadCardsFromPreset(); timeLine.GenerateTimeline(_gamePreset); timeLine.AddCards(_cards); _activeCard = cardSlots[0].GetChild(0).GetComponent <TimeCard>(); _activeCard.Activate(); }
public void GenerateTimeline(TimelineGamePreset preset) { List <StepItem> generatedSteps = new List <StepItem>(); float leftoverWidth = ((RectTransform)transform).rect.width; List <RectTransform> stepsToScale = new List <RectTransform>(); StepItem item = Instantiate(majorStepPrefab, transform); item.InitMajor(preset.timeRanges[0].start); leftoverWidth -= _layout.spacing * 2; foreach (TimeRange timeRange in preset.timeRanges) { for (int currentYear = timeRange.start; currentYear < timeRange.end; currentYear += timeRange.stepSize) { StepItem minorStepItem = Instantiate(minorStepPrefab, transform); minorStepItem.InitMinor(currentYear, currentYear + timeRange.stepSize); stepsToScale.Add((RectTransform)minorStepItem.transform); generatedSteps.Add(minorStepItem); leftoverWidth -= _layout.spacing; } item = Instantiate(majorStepPrefab, transform); item.InitMajor(timeRange.end); leftoverWidth -= _layout.spacing * 2; } leftoverWidth /= stepsToScale.Count; for (int i = 0; i < stepsToScale.Count; i++) { stepsToScale[i].sizeDelta = new Vector2(leftoverWidth, ((RectTransform)transform).rect.size.y); } _steps = generatedSteps; }