public override GameObject CreateObject(Transform parent) { GameplayModifierToggle baseModifier = MonoBehaviour.Instantiate(Resources.FindObjectsOfTypeAll <GameplayModifierToggle>().First(x => (x.name == "InstaFail")), parent, false); baseModifier.name = "BSMLModifier"; GameObject gameObject = baseModifier.gameObject; MonoBehaviour.Destroy(baseModifier); MonoBehaviour.Destroy(gameObject.GetComponent <HoverHint>()); ExternalComponents externalComponents = gameObject.AddComponent <ExternalComponents>(); externalComponents.components.Add(gameObject.GetComponentInChildren <TextMeshProUGUI>()); externalComponents.components.Add(gameObject.transform.Find("Icon").GetComponent <Image>()); CheckboxSetting checkboxSetting = gameObject.AddComponent <CheckboxSetting>(); checkboxSetting.checkbox = gameObject.GetComponent <Toggle>(); return(gameObject); }
public override GameObject CreateObject(Transform parent) { GameplayModifierToggle baseSetting = Object.Instantiate(Resources.FindObjectsOfTypeAll <GameplayModifierToggle>().First(x => x.name == "InstaFail"), parent, false); baseSetting.name = "BSMLCheckboxSetting"; GameObject gameObject = baseSetting.gameObject; gameObject.SetActive(false); Object.Destroy(baseSetting); Object.Destroy(gameObject.transform.GetChild(0).gameObject); //Remove icon Object.Destroy(gameObject.GetComponent <SignalOnUIToggleValueChanged>()); //Remove base game signal Object.Destroy(gameObject.GetComponent <HoverHint>()); //When parsing, "RectTransform" will already add a new one. No need for this. CheckboxSetting checkboxSetting = gameObject.AddComponent <CheckboxSetting>(); checkboxSetting.checkbox = gameObject.GetComponent <Toggle>(); TextMeshProUGUI text = gameObject.GetComponentInChildren <TextMeshProUGUI>(); text.fontSize = 5; //Change some settings to conform more to the List Dropdown/IncDec settings controllers text.rectTransform.localPosition = Vector2.zero; text.rectTransform.anchoredPosition = Vector2.zero; text.rectTransform.sizeDelta = Vector2.zero; gameObject.AddComponent <ExternalComponents>().components.Add(text); LayoutElement layout = gameObject.GetComponent <LayoutElement>(); //If Beat Games decides to add one later down the road. if (layout is null) { layout = gameObject.AddComponent <LayoutElement>(); //For the time being, they dont have one, so time to add one myself! } layout.preferredWidth = 90; //Again, to conform to List Dropdown/IncDec settings controllers layout.preferredHeight = 8; gameObject.SetActive(true); return(gameObject); }