Вы можете скопировать, вставить код создания кнопки и просто переместить Destroy(button)
в вызов AddListener
. Убедитесь, что вы не меняете родительскую кнопку при создании childButton
, за исключением вызова Destroy(button)
. Вы также можете установить родительский элемент для кнопки:
public void AddMoreButton()
{
if (lectureInput.text.Length < 1)
{
return;
}
lectureTitle.text = lectureInput.text;
creditsTitle.text = creditsInput.text;
swsTitle.text = swsInput.text;
GameObject button = (GameObject)Instantiate(prefabButton);
Button buttonInstance = button.GetComponentInChildren<Button>();
childButtonInstance.onClick.AddListener(() => { /*whatever the parent button should do*/ });
button.transform.SetParent(panel.transform, false);
button.layer = 5;
button.SetActive(true);
GameObject childButton = (GameObject)Instantiate(prefabButton);
Button childButtonInstance = childButton.GetComponentInChildren<Button>();
buttonInstance.onClick.AddListener(() => { Destroy(button); });
childButton.transform.SetParent(button, false);
childButton.layer = 5;
childButton.SetActive(true);
ClearInputs();
}
Вам, вероятно, придется настроить его положение с помощью childButton.transform.Translate(Vector3(0f,0.5f,0f));
или чего-то такого, чтобы оно не перекрывалось с родительской кнопкой.