// Use this for initialization void Awake() { // Create the UIs for each child and hide them at the start for (int i = 0; i < ChildManager.MaxChildCount; ++i) { GameObject ui = Instantiate(ChildUI, transform, false); ui.transform.localPosition = new Vector3(Spacing * i, 0, 0); ChildUIScript uiScript = ui.GetComponentInChildren <ChildUIScript>(); uiScript.Child = ChildManager.GetChild(i); uiScript.gameObject.SetActive(false); childUIs.Add(uiScript); } // Do this in Awake so we can hook into events immediately ChildManager.ChildAdded += ChildManager_ChildAdded; ChildManager.ChildKilled += ChildManager_ChildKilled; ChildManager.ChildGraduated += UpdateChildUI; }
private void UpdateChildUI(Child child) { ChildUIScript childUI = childUIs.Find(x => x.GetComponent <ChildUIScript>().Child == child); childUI.UpdateUIForState(); }