public void OnPointerClick(PointerEventData pointerEventData) { if (!acted) { actionPanel.Display(); for (int i = 0; i < availableActions.Count; i++) { GameObject newButton = Instantiate(button, actionPanel.transform); newButton.GetComponentInChildren <Text>().text = availableActions[i].Name; var x = i; newButton.GetComponent <Button>().onClick.AddListener(() => PerformTeenAction(x)); } } }