private void CreateTargets() { if (!targetsContainer) { return; } if (!targetPrefab) { return; } GUIObjectTargetHelper[] ts = targetsContainer.GetComponentsInChildren <GUIObjectTargetHelper>(); foreach (var item in ts) { Destroy(item.gameObject); } foreach (var item in MBoard.Targets) { RectTransform t = Instantiate(targetPrefab, targetsContainer).GetComponent <RectTransform>(); GUIObjectTargetHelper th = t.GetComponent <GUIObjectTargetHelper>(); th.SetData(item.Value, false, true); th.SetIcon(MBoard.GOSet.GetObject(item.Value.ID).GuiImage); item.Value.ChangeCountEvent += (td) => { if (this) { th.SetData(td, false); th.gameObject.SetActive(td.NeedCount > 0); } }; th.gameObject.SetActive(item.Value.NeedCount > 0); } }