Я хочу знать, как я могу получить ссылку на определенную функцию в любом другом скрипте через инспектор единства для добавления его в прослушиватель по нажатию динамически создаваемой кнопки.Я пытался открыть общедоступный UnityEvent, чтобы получить ссылку на функции (как в случае щелчка статической кнопки), но я не уверен, как добавить его в прослушиватель по нажатию (button.onClick.AddListener (functionName)), как выглядит слушательдля действия.Есть что-то, что я пропускаю?Или есть другой подход к этому?Благодарю.Это идея -
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
public class DynamicButton : MonoBehaviour
{
public Button MainButton;
public GameObject ButtonPrefab;
[System.Serializable]
public class ButtonInfo
{
public Sprite sprite;
public UnityEvent ButtonEvent; //take reference to a particular function
}
public ButtonInfo[] ButtonCount;
void Start()
{
PlaceButtons();
}
void PlaceButtons()
{
int NoButton = ButtonCount.Length;
for (int i = 0; i < NoButton; i++)
{
Vector3 newPos = new Vector3(i*10, i*10,0);
GameObject go = Instantiate(ButtonPrefab, newPos, Quaternion.identity);
go.GetComponent<Image>().sprite = ButtonCount2To6[i].sprite;
go.GetComponent<Button>().onClick.AddListener(); //This is where I want to add the particular function that i want to execute when the button is clicked
go.transform.parent = MainButton.transform;
go.transform.localPosition = newPos;
}
}
}