public RectTransform AddRadio(string label, string group, OnToggleValueChange handler, int targetCanvas = 0) { RectTransform rt = (RectTransform)GameObject.Instantiate(radioPrefab); AddRect(rt, targetCanvas); Text buttonText = rt.GetComponentInChildren <Text>(); buttonText.text = label; Toggle tb = rt.GetComponentInChildren <Toggle>(); if (group == null) { group = "default"; } ToggleGroup tg = null; bool isFirst = false; if (!radioGroups.ContainsKey(group)) { tg = tb.gameObject.AddComponent <ToggleGroup>(); radioGroups[group] = tg; isFirst = true; } else { tg = radioGroups[group]; } tb.group = tg; tb.isOn = isFirst; tb.onValueChanged.AddListener(delegate { handler(tb); }); return(rt); }
public RectTransform AddToggle(string label, OnToggleValueChange onValueChanged, int targetCanvas = 0) { RectTransform rt = (RectTransform)GameObject.Instantiate(togglePrefab); AddRect(rt, targetCanvas); Text buttonText = rt.GetComponentInChildren <Text>(); buttonText.text = label; Toggle t = rt.GetComponentInChildren <Toggle>(); t.onValueChanged.AddListener(delegate { onValueChanged(t); }); return(rt); }