У меня есть массив InputFields, в моей ситуации - шесть InputFields. Как я могу получить текст и сохранить его с каждого InputField?Как я могу получить текст и сохранить его в InputField?
Все должно работать следующим образом: я включаю приложение, я меняю одно, два или все поля ввода, а затем выключаю приложение. Опять же, я включаю, и поля ввода должны быть значениями, которые я написал ранее.
У меня есть код, который должен работать корректно, но этот код работает следующим образом: он принимает только последнее значение, введенное пользователем, и записывает его в последнее поле ввода.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SaveText : MonoBehaviour {
public GameObject[] InputFields;
public static string n;
public void Start()
{
for(int i = 0; i < InputFields.Length; i++)
{
InputFields[i].GetComponent<InputField>().text = PlayerPrefs.GetString (InputFields[i].name);
Debug.Log (PlayerPrefs.GetString (InputFields[i].name));
n = InputFields[i].name;
var input = InputFields[i].GetComponent<InputField>();
var se = new InputField.SubmitEvent();
se.AddListener (SubmitName);
input.onEndEdit = se;
}
}
public void SubmitName(string arg)
{
PlayerPrefs.SetString (n, arg);
}
Массив полого ввода инициализирует перетаскивание в Unity каждого поля ввода в свободной ячейке Script Component.
В чем проблема? У вас уже есть поля внутри массива InputFields. Если нажать submitName, вам необходимо выполнить цикл и собрать содержимое из каждого окна.Было бы неплохо создать объект, содержащий атрибут для каждого текстового поля, к которому вы собираетесь обращаться. –
@AlexCio Проблема в том, что я хочу, когда я изменил значение в полях ввода, а затем переключился на другую сцену или выключил в приложении, те значения, которые я ввел, они отображаются в этих полях для ввода следующего редактирования. Как я могу это реализовать? –
Надеюсь, я правильно понял, что вы хотели сказать. Попробуйте методы в моем посте, и это должно сработать! –