IEnumerator Start() { Debug.Assert(canvas != null); Debug.Assert(nodeTextualDetails != null); Debug.Assert(horizontalLayout != null); Debug.Assert(presetColumnPrefab != null); Debug.Assert(backButton != null); canvas.gameObject.SetActive(false); yield return(StartCoroutine(App.Content.Account.Load())); //return if object died while waiting for answer if (this == null) { yield break; } nodeTextualDetails.SetContext(new ViewModel.NodeTextualDetails(hovered)); backButton.onClick.AddListener(BackClicked); //setup existing preset columns foreach (var preset in App.Content.Account.ActiveChampion.PresetList) { GameObject gob = Instantiate(presetColumnPrefab); gob.transform.SetParent(horizontalLayout.transform, false); View.PresetColumn viewPresetColumn = gob.GetComponent <View.PresetColumn>(); viewPresetColumn.SetContext(new ViewModel.PresetColumn( preset, hovered, ViewModel.PresetColumn.Mode.Display)); } //add empty column to add presets. { GameObject gob = Instantiate(presetColumnPrefab); gob.transform.SetParent(horizontalLayout.transform, false); View.PresetColumn viewPresetColumn = gob.GetComponent <View.PresetColumn>(); viewPresetColumn.SetContext(new ViewModel.PresetColumn( null, hovered, ViewModel.PresetColumn.Mode.Addition)); } ArrangeUI(); //App.Content.Account.ActiveChampion.PresetAdded += OnPresetAdded; App.Content.Account.ActiveChampion.PresetRemoved += OnPresetRemoved; canvas.gameObject.SetActive(true); }