public T AddSliderSetting <T>(string name, string hintText, float min, float max, bool intValues) where T : IncDecSettingsController { var volumeSettings = Resources.FindObjectsOfTypeAll <WindowModeSettingsController>().FirstOrDefault(); GameObject newSettingsObject = MonoBehaviour.Instantiate(volumeSettings.gameObject, transform); newSettingsObject.name = name; WindowModeSettingsController volume = newSettingsObject.GetComponent <WindowModeSettingsController>(); T newSliderSettingsController = (T)ReflectionUtil.CopyComponent(volume, typeof(IncDecSettingsController), typeof(T), newSettingsObject); MonoBehaviour.DestroyImmediate(volume); GameObject.Destroy(newSettingsObject.transform.Find("Value").Find("DecButton").gameObject); GameObject.Destroy(newSettingsObject.transform.Find("Value").Find("ValueText").gameObject); GameObject.Destroy(newSettingsObject.transform.Find("Value").Find("IncButton").gameObject); HMUI.Scrollbar slider = GameObject.Instantiate(Resources.FindObjectsOfTypeAll <HMUI.Scrollbar>().First(), newSettingsObject.transform.Find("Value"), false); SliderProperties sliderProperties = slider.gameObject.AddComponent <SliderProperties>(); sliderProperties.FromValue = min; sliderProperties.ToValue = max; sliderProperties.IntValues = intValues; slider.GetComponentInChildren <TextMeshProUGUI>().enableWordWrapping = false; (slider.transform as RectTransform).sizeDelta = new Vector2(39.5f, 7.5f); (slider.transform as RectTransform).anchorMin = new Vector2(0, 0.5f); var tmpText = newSettingsObject.GetComponentInChildren <TMP_Text>(); tmpText.text = name; BeatSaberUI.AddHintText(tmpText.rectTransform, hintText); return(newSliderSettingsController); }
public T AddToggleSetting <T>(string name) where T : SwitchSettingsController { var volumeSettings = Resources.FindObjectsOfTypeAll <WindowModeSettingsController>().FirstOrDefault(); GameObject newSettingsObject = MonoBehaviour.Instantiate(volumeSettings.gameObject, transform); newSettingsObject.name = name; WindowModeSettingsController volume = newSettingsObject.GetComponent <WindowModeSettingsController>(); T newToggleSettingsController = (T)ReflectionUtil.CopyComponent(volume, typeof(SwitchSettingsController), typeof(T), newSettingsObject); MonoBehaviour.DestroyImmediate(volume); newSettingsObject.GetComponentInChildren <TMP_Text>().text = name; return(newToggleSettingsController); }
public static T AddToggleSetting <T>(RectTransform parent, string name) where T : MonoBehaviour { var volumeSettings = Resources.FindObjectsOfTypeAll <WindowModeSettingsController>().FirstOrDefault(); GameObject newSettingsObject = UnityEngine.Object.Instantiate(volumeSettings.gameObject, parent); newSettingsObject.name = name; WindowModeSettingsController volume = newSettingsObject.GetComponent <WindowModeSettingsController>(); T newToggleSettingsController = volume.gameObject.AddComponent <T>(); UnityEngine.Object.DestroyImmediate(volume); newSettingsObject.GetComponentInChildren <TMP_Text>().text = name; return(newToggleSettingsController); }
public T AddIntSetting <T>(string name, string hintText) where T : IntSettingsController { var volumeSettings = Resources.FindObjectsOfTypeAll <WindowModeSettingsController>().FirstOrDefault(); GameObject newSettingsObject = MonoBehaviour.Instantiate(volumeSettings.gameObject, transform); newSettingsObject.name = name; WindowModeSettingsController volume = newSettingsObject.GetComponent <WindowModeSettingsController>(); T newToggleSettingsController = (T)ReflectionUtil.CopyComponent(volume, typeof(IncDecSettingsController), typeof(T), newSettingsObject); MonoBehaviour.DestroyImmediate(volume); var tmpText = newSettingsObject.GetComponentInChildren <TMP_Text>(); tmpText.text = name; BeatSaberUI.AddHintText(tmpText.rectTransform, hintText); return(newToggleSettingsController); }
public T AddColorPickerSetting <T>(string name, string hintText) where T : SimpleSettingsController { var volumeSettings = Resources.FindObjectsOfTypeAll <WindowModeSettingsController>().FirstOrDefault(); GameObject newSettingsObject = MonoBehaviour.Instantiate(volumeSettings.gameObject, transform); newSettingsObject.name = name; WindowModeSettingsController volume = newSettingsObject.GetComponent <WindowModeSettingsController>(); T newColorPickerSettingsController = (T)ReflectionUtil.CopyComponent(volume, typeof(SimpleSettingsController), typeof(T), newSettingsObject); MonoBehaviour.DestroyImmediate(volume); GameObject.Destroy(newSettingsObject.transform.Find("Value").Find("DecButton").gameObject); GameObject.Destroy(newSettingsObject.transform.Find("Value").Find("ValueText").gameObject); GameObject.Destroy(newSettingsObject.transform.Find("Value").Find("IncButton").gameObject); ColorPickerPreviewClickable cppc = new GameObject("ColorPickerPreviewClickable").AddComponent <ColorPickerPreviewClickable>(); cppc.ImagePreview.sprite = null; //cppc.transform.localScale = new Vector3(sizeDelta.x, sizeDelta.y, colorPicker.transform.localScale.z); cppc.transform.SetParent(newSettingsObject.transform.Find("Value"), false); //cppc.transform.localScale = new Vector3(0.2f, 0.15f); //(cppc.transform as RectTransform).anchorMin = new Vector2(0, 0.5f); //(cppc.transform as RectTransform).anchorMax = new Vector2(0, 0.5f); //(cppc.transform as RectTransform).anchoredPosition = new Vector2(-50, 0); (cppc.transform as RectTransform).sizeDelta = new Vector2(39.5f, 7f); var tmpText = newSettingsObject.GetComponentInChildren <TMP_Text>(); tmpText.text = name; BeatSaberUI.AddHintText(tmpText.rectTransform, hintText); return(newColorPickerSettingsController); }