private void AddPanel(string name, float initValue, IValueSetter valueSetter, Transform content) { GameObject gameObject = GameObject.Instantiate(panel, content); var text = gameObject.GetComponentInChildren <TextMeshProUGUI>(); text.text = name + " - " + initValue; valueSetter.SetInitValue(initValue); GameObject value = valueSetter.MakeGameObject(); valueSetter.AddAction((float val) => text.text = name + " - " + val); value.transform.SetParent(gameObject.transform); }