private PropertyFormRow GeneralizeRow(CardPropertyFormRowType type, string labelKey, UnityAction <string> onValueChange, out UnityAction <string, bool> setValue, List <string> dropdownOptionList = null, UnityAction <string> onButtonClick = null) { PropertyFormRow cpfr = BaseInitialize(type, BonusContainer, labelKey, onValueChange, out setValue, dropdownOptionList, onButtonClick); My_BonusGroupPropertyForm.Add(cpfr); return(cpfr); }
public static PropertyFormRow BaseInitialize(CardPropertyFormRowType type, Transform parent, string labelStrKey, UnityAction <string> onValueChangeAction, out UnityAction <string, bool> setValue, List <string> dropdownOptionList = null, UnityAction <string> onButtonClick = null) { PropertyFormRow res = null; switch (type) { case CardPropertyFormRowType.InputField: { PropertyFormRow_InputField row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_InputField].AllocateGameObject <PropertyFormRow_InputField>(parent); row.Initialize(labelStrKey, onValueChangeAction: onValueChangeAction, setValue: out setValue, onButtonClick: onButtonClick); res = row; break; } case CardPropertyFormRowType.Dropdown: { PropertyFormRow_Dropdown row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_Dropdown].AllocateGameObject <PropertyFormRow_Dropdown>(parent); row.Initialize(labelStrKey, onValueChangeAction: onValueChangeAction, setValue: out setValue, dropdownOptionList: dropdownOptionList, onButtonClick: onButtonClick); res = row; break; } case CardPropertyFormRowType.Toggle: { PropertyFormRow_Toggle row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_Toggle].AllocateGameObject <PropertyFormRow_Toggle>(parent); row.Initialize(labelStrKey, onValueChangeAction: onValueChangeAction, setValue: out setValue, onButtonClick: onButtonClick); res = row; break; } case CardPropertyFormRowType.TwoToggle: { PropertyFormRow_TwoToggleRow row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_TwoToggleRow].AllocateGameObject <PropertyFormRow_TwoToggleRow>(parent); row.Initialize(labelStrKey, null, out setValue); res = row; break; } default: { setValue = null; break; } } return(res); }