unityでインプットフィールドコンポーネントに入力されたテキストの値を
保持し、プレイスフォルダー(インプットフィールドに何も文字が入力されてない場合に表示される文字)に表示させたいのですが
onEndEditイベント(リターンキーが押された場合にトリガーされるイベント)がトリガーされない場合でも**PlayerPrefs.SetString()が作動してしまうのです。
これをonEndEditイベントがトリガーされた場合のみPlaerPrefs.SetString()**を動作させたいのですが解決策などあるでしょうか。
因みに
public void OnSubmit(string value) { Debug.Log (inputField.text); PlayerPrefs.SetString (key, inputField.text); Debug.Log("Submit value is " + value); }
のPlayerPrefs.SetString (key, inputField.text);をコメントアウトし
void Start () { inputField.placeholder.GetComponent<Text> ().text = PlayerPrefs.GetString (key); inputField.onValueChange.AddListener(OnValueChange); inputField.onEndEdit.AddListener(OnSubmit); //PlayerPrefs.SetString (key, inputField.text); //ここのコメントを外すとインプットフィールドコンポーネントのplaceholderがつぎから何も表示されなくなる }
PlayerPrefs.SetString (key, inputField.text); ここのコメントを外すとインプットフィールドコンポーネントのplaceholderがつぎから何も表示されなくなるのです。
本題のコード
c#
1using UnityEngine; 2using UnityEngine.UI; 3using System.Collections; 4 5public class InputFieldEventExample : MonoBehaviour { 6 public string placeholderValue ; 7 public string key; 8 [SerializeField] private InputField inputField; 9 10 void Start () { 11 12 inputField.placeholder.GetComponent<Text> ().text = PlayerPrefs.GetString (key); 13 14 inputField.onValueChange.AddListener(OnValueChange); 15 inputField.onEndEdit.AddListener(OnSubmit); 16 17 //PlayerPrefs.SetString (key, inputField.text); //ここのコメントを外すとインプットフィールドコンポーネントのplaceholderがつぎから何も表示されなくなる 18 19 20 } 21 22 23 public void OnValueChange(string value) 24 { 25 Debug.Log("Input Field value is " + value); 26 } 27 28 public void OnSubmit(string value) 29 { 30 Debug.Log (inputField.text); 31 PlayerPrefs.SetString (key, inputField.text); 32 Debug.Log("Submit value is " + value); 33 } 34} 35
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/10 13:37