【发布时间】:2018-10-11 09:19:19
【问题描述】:
我正在尝试在 Unity 中显示一串文本,该文本会更新以显示正在发生的事情的日志。现在我的代码没有任何错误并加载初始消息,但没有更新。
我确实将文本链接到 Unity 中的脚本,所以这不是问题。
一开始我声明了 Text UserUpdate 和一个用作文本容器的字符串。
public Text UserUpdate;
public string userUpdate;
一开始我给它赋值(到目前为止有效)。
public void Start()
{
userUpdate = "Create an account or login";
}
后面我调用函数和使用条件来改变userUpdate的值
public void LoginButtonPressed()
{
FirebaseAuth.DefaultInstance.SignInWithEmailAndPasswordAsync(EmailAddress.text, Password.text).
ContinueWith(task =>
{
if (task.IsCanceled)
{
Debug.LogError("Login was cancelled");
userUpdate = "Login was cancelled";
return;
}
if(task.IsFaulted)
{
Debug.LogError("Error logging in");
userUpdate = "Error logging in";
return;
}
if(task.IsCompleted)
{
Debug.LogFormat("Usermanager: User signed in successfully: {0}", EmailAddress.text);
userUpdate = "Sign in successful";
isLoadMainScene = true;
}
});
}
然后在 void Update() 下我分配 UserUpdate.text 的值
void Update()
{
UserUpdate.text = userUpdate;
}
【问题讨论】:
-
我认为您应该将其重构为 use a Coroutine。 Here is an example updating the UI.
-
将
Debug.Log(UserUpdate.text)放入Update函数中,看看您是否在“控制台”选项卡中得到任何信息。顺便问一下,您在LoginButtonPressed函数中看到Debug.LogError日志了吗?