Я пытаюсь найти активный InputField.
В коде я создаю InputFields и добавляю их в список, в список они добавляются, но я не могу их получить в isFocused. Основная задача — сравнить данные, введенные пользователем, и данные в Placeholder поля ввода.
using System.Collections.Generic;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class LetterManager : Loader
{
public static LetterManager instance = null;
[SerializeField] private string word;
[SerializeField] private Sprite wordSprite;
[SerializeField] private GameObject buttonLetter;
[SerializeField] private GameObject letterUIPanel;
[SerializeField] public string inputText;
[SerializeField] private TextMeshProUGUI buttonText;
[SerializeField] private TMP_InputField _inputField;
private List inputFieldsList = new List();
private void Start()
{
for (int i = 0; i < word.Length; i++)
{
GameObject newButtonLetter = Instantiate(buttonLetter, letterUIPanel.transform) as GameObject;
newButtonLetter.name = $"Button{i}";
buttonText = newButtonLetter.GetComponentInChildren();
buttonText.text = word.ToString();
_inputField = newButtonLetter.GetComponent();
inputFieldsList.Add(_inputField);
Debug.Log(buttonText.text);
}
foreach (var input in inputFieldsList) //here check list InputField is OK
{
Debug.Log(input);
}
}
public void LogInputText() //assigned to event manager in InputField, NOT work!
{
foreach (var input in inputFieldsList)
{
if(input.isFocused) Debug.Log(input.name);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... s-not-work