/// <summary> /// Add a toggle to this Screen Effects subcategory. /// </summary> /// <param name="text">Label text</param> /// <param name="setter">Method to be called when the toggle changes value</param> /// <param name="initialValue">Initial state of the toggle</param> /// <returns>Instance of the ToggleSet</returns> public SceneEffectsToggleSet AddToggleSet(string text, Action <bool> setter, bool initialValue) { var containingElement = new GameObject().AddComponent <RectTransform>(); containingElement.name = text; containingElement.SetParent(Content.transform, false); KoikatuAPI.Instance.StartCoroutine(SetPosDelayed(containingElement.transform, GetCurrentOffset())); var label = Object.Instantiate(_labelSource).GetComponent <TextMeshProUGUI>(); label.transform.SetParent(containingElement.transform, false); label.transform.localPosition = new Vector3(4f, 0f, 0f); var toggle = Object.Instantiate(_toggleSource).GetComponent <Toggle>(); toggle.transform.SetParent(containingElement.transform, false); toggle.transform.localPosition = new Vector3(160f, 0f, 0f); var toggleSet = new SceneEffectsToggleSet(label, toggle, text, setter, initialValue); Toggles.Add(toggleSet); CorrectCategoryScale(); return(toggleSet); }
/// <summary> /// Add a toggle to this Screen Effects subcategory. /// </summary> /// <param name="text">Label text</param> /// <param name="setter">Method to be called when the toggle changes value</param> /// <param name="initialValue">Initial state of the toggle</param> /// <returns>Instance of the ToggleSet</returns> public SceneEffectsToggleSet AddToggleSet(string text, System.Action <bool> setter, bool initialValue) { var labelSource = GameObject.Find(LabelSourcePath); var toggleSource = GameObject.Find(ToggleSourcePath); var containingElement = new GameObject().AddComponent <RectTransform>(); containingElement.name = text; containingElement.SetParent(Content.transform); containingElement.transform.localScale = new Vector3(1f, 1f, 1f); containingElement.transform.localPosition = new Vector3(0f, Offset, 0f); var label = Object.Instantiate(labelSource).GetComponent <TextMeshProUGUI>(); label.transform.SetParent(containingElement.transform); label.transform.localScale = new Vector3(1f, 1f, 1f); label.transform.localPosition = new Vector3(4f, 0f, 0f); var toggle = Object.Instantiate(toggleSource).GetComponent <Toggle>(); toggle.transform.SetParent(containingElement.transform); toggle.transform.localScale = new Vector3(1f, 1f, 1f); toggle.transform.localPosition = new Vector3(160f, 0f, 0f); var toggleSet = new SceneEffectsToggleSet(label, toggle, text, setter, initialValue); Toggles.Add(toggleSet); return(toggleSet); }