私の状況では、配列InputFieldsがあります-6つの InputFields。各 InputField からテキストを取得して保存するにはどうすればよいですか?
すべてが次のように機能するはずです。アプリをオンにし、入力フィールドの 1 つ、2 つ、またはすべてを変更してから、アプリケーションをオフにします。もう一度オンにすると、入力フィールドは以前に書いた値である必要があります。
正しく動作するはずのコードがありますが、このコードは次のように動作します。ユーザーが最後に入力した値のみを取得し、それを最後の入力フィールドに書き込みます。
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 で各入力フィールドをスクリプト コンポーネントのフリー セルにドラッグして初期化します。