C#
1[SerializeField] InputField inputField; 2string Nickname {get { return PhotonNetwork.NickName; } set{ PhotonNetwork.NickName = value; inputField.text = value; }} 3 4void Start() { 5FirebaseDatabase.DefaultInstance.GetReference("users").Child(userID).Child("NickName").GetValueAsync().ContinueWith(task => 6 { 7 if (task.IsCompleted) 8 { 9 string Nickname = task.Result.Value.ToString(); 10 this.Nickname = Nickname; 11 Debug.Log(Nickname); 12 } 13 14 }); 15}
上記のようにFirebaseのRealtime Databaseからユーザーの名前を取得しようとしたのですが、inputFieldのテキストが変更されているにもかかわらずテキストが反映されません。
Debug.Log()
では正しい名前が帰ってきています。
インスペクターで確認してみると、Text
に正しい文字列が入っているのですが、子オブジェクトであるTextComponent
に反映されません。
###やってみたこと1
inputField.text
ではなくinputField.TextComponent.text
に代入しましたが変更が反映されませんでした。
###やってみたこと2
inputField.text
もしくはinputField.TextComponent.text
を変更した後、
C#
1inputField.enabled = false; 2inputField.enabled = true; 3 4//もしくは 5 6inputField.TextComponent = false; 7inputField.TextComponent = true;
このようにコンポーネントを再有効化しても反映されませんでした。
###やってみたこと3
他のUGUIのボタンなどを押すと突然反映されるが、これをボタンを押さなくても反映されるようにしたい。
###やってみたこと4
Canvas.ForceUpdateCanvases
を実行しましたが反映されませんでした。
おそらくCanvasがアップデートされていないのが原因のように見えますが、これ以上何すればいいのか見当もつきません。。。
どなたか詳しい方回答お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。