アプリでInputFieldを3つと設定ボタンをひとつ作りました。
それぞれにはすでにPlayerPrefsで保存したデータと関連付けしており
placeholderで表示されます。
設定ボタンを押すとOnClickSetting()で
データが入った時にはその入力データを
入っていない時は前のデータ(placeholderのデータ)を
対象としてPlayerPrefsで保存します。
質問はデータ入力時の変な挙動です。
挙動例1)
1、1つめのInputFieldにひらがなでデータを「ほげ」と入れる
2、「設定ボタン」を押す
3、なぜか「ほげほげ」と2重で保存される
※半角英数の場合はうまくいく
挙動例2)
1、1つめのInputFieldにひらがなでデータを「ほげ」と入れる
2、リターンを押す
3、なぜかField上にほげほげと表示される
4、「設定ボタン」を押す
5、保存されるデータは「ほげ」になる
フォーカスが関係しているような気がするのですが
ググって調べてみても同じような症状は見つかりません。
分かる方見えましたらお教えください。
InputFieldの設定
Conent Type Standard
Line Type Multi Line Newline
On Value Changed と On End Editは使っていません。
環境)
PC: mac
Unity2019.4.0f1
言語:C#
プラットフォーム:Android
SettingScript.cs
using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class SettingScript : MonoBehaviour { #pragma warning disable 649 [SerializeField]Text placeholderText1, placeholderText2, placeholderText3; [SerializeField]InputField lotoInput1, lotoInput2, lotoInput3; string loto1Value, loto2Value, loto3Value; void Start() { placeholderText1.text = PlayerPrefs.GetString("lotoname1", "ひとつめ"); placeholderText2.text= PlayerPrefs.GetString("lotoname2", "ふたつめ"); placeholderText3.text = PlayerPrefs.GetString("lotoname3", "みっつめ"); } public void OnClickSetting() { if(lotoInput1.text != "") { loto1Value = lotoInput1.text; }else{ loto1Value = placeholderText1.text; } // loto1Value = lotoInput1.text; if(lotoInput2.text != "") { loto2Value = lotoInput2.text; }else{ loto2Value = placeholderText2.text; } if(lotoInput3.text != "") { loto3Value = lotoInput3.text; }else{ loto3Value = placeholderText3.text; } Debug.Log("kuji:" + loto1Value + loto2Value + loto3Value); PlayerPrefs.SetString("lotoname1", loto1Value); PlayerPrefs.SetString("lotoname2", loto2Value); PlayerPrefs.SetString("lotoname3", loto3Value); PlayerPrefs.Save(); SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().name, LoadSceneMode.Single); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 02:38