[SerializeField]
private GameObject buttonPrefab;
[SerializeField]
private Transform canvas;
public void CloneButton()
{
var buttonComponent = Instantiate(buttonPrefab, canvas).GetComponent<Button>();
buttonComponent.onClick.AddListener(TaskOnClick);
}
public void TaskOnClick()
{
// things happen when the button clicked
}
Вы должны указать ссылку на префаб и объект холста в качестве родительского элемента для кнопки через инспектор.