/// <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);
        }
Beispiel #2
0
        /// <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);
        }