我只是不能让自己在团结中发挥作用。无论多么简单,团结总是冻结在我身上。
function LoadingLevel (level : int) {
yield;
//progressBar.transform.localScale = Vector3(loadingProgress, 0, 0);
async = Application.LoadLevelAsync(1);
while (!async.isDone) {
loadingProgress = parseInt(async.progress * 100);
}
//Application.LoadLevel(level);
}这就是我目前遇到的问题:它编译,但在运行时冻结。我做错什么了?
发布于 2014-11-27 21:49:13
您无法理解异步组件是如何在统一中工作的。
您的while循环需要yield。这是因为统一程序是单线程的,而yield是给其他“协同机制”分配时间的方法。
while (!async.isDone)
{
loadingProgress = parseInt(async.progress * 100);
yield;
}以下是关于这一工作方式的统一文档:
http://docs.unity3d.com/Manual/Coroutines.html
https://stackoverflow.com/questions/27179088
复制相似问题