Я предполагаю, что вам нужно вызывать PlayerConnectionManager.PressedButton во время выполнения, а не через редактор. Если это так, то это довольно просто. Вам просто нужно использовать addlistener. Вот фрагмент.
public class TextMeshAdd : MonoBehaviour
{
//input field object
public TMP_InputField tmpInputField;
// Use this for initialization
void Start ()
{
//Add a listener function here
//Note: The function has to be of the type with parameter string
tmpInputField.onEndEdit.AddListener(TextMeshUpdated);
}
public void TextMeshUpdated(string text)
{
Debug.Log("Output string " + text);
}
}
Помните, что функция, которую вы ей даете, должна иметь параметр со строкой. т.е.
PlayerConnectionManager.PressedButton
должно быть того типа, который указан выше TextMeshUpdated(string text)
. Это позволит ему вызывать функцию в конце во время выполнения.
Еще одна вещь, которую вы должны иметь в виду, это то, что если вы используете поле ввода в каком-то другом месте, обязательно удалите старого слушателя перед добавлением нового слушателя.
Вы можете сделать это с помощью этого
tmpInputField.onEndEdit.RemoveListener(TextMeshUpdated);
или же
tmpInputField.onEndEdit.RemoveAllListeners();
Первый метод удалит только определенный обратный вызов функции, в то время как RemoveAllListeners удалит все прослушиватели событий, прикрепленные к обратному вызову. Если вы не сделаете этого и попытаетесь назначить новый обратный вызов, он попытается вызвать старые функции и, возможно, может вызвать некоторые ошибки.