我有一个统一的登录场景,在该场景中,我要获取用户的详细信息,然后根据想要显示和隐藏gameobject
的条件进行处理。
我有一个Loading
游戏对象,不过是加载动画。
这就是我正在做的(并尝试过):
void Start() //Start Of Scene
{
Loading = GameObject.Find("CircleGlass");
Loading.SetActive(false);
}
单击按钮时:
public void Clicked()
{
Loading.SetActive(true);
//Rest of code fetching data from api using UnityEngine.Networking
if(condition)
{
Loading.SetActive(false);
//Redirect to another page
}
}
问题是Loading
游戏对象,当我单击按钮时才显示。需要花费时间,但不显示加载程序。
这是所附的屏幕截图:
任何帮助将不胜感激。谢谢!
答案 0 :(得分:3)
根据您发布的代码,我假设代码是同步执行的。这意味着在执行SetActive(true)之后,在执行SetActive(false)之前没有更新帧,因此没有时间更新实际对象的状态。
您可以使用协同程序来更改它:
private final Supplier<List<Client>> getClientsSupplier = Suppliers.memoizeWithExpiration(ClientsDao::getClients, Server.CACHE_REFRESH_DURATION, Server.CACHE_REFRESH_TIMEUNIT);
public List<Client> getClients() {
return getClientsSupplier.get();
}