在后台加载新场景我正在为三星GearVR创建一个Unity应用程序。我目前有两个场景:初始场景和第二个场景,其中有很多数据(加载场景需要太多时间)。从第一个场景开始,想在后台加载第二个场景,加载完再切换。当新场景在后台加载时,用户应保持移动头部以查看VR环境的任何部分的能力。我正在使用SceneManager.LoadSceneAsync但它不起作用://...StartCoroutiune(loadScene());//...IEnumeratorloadScene(){AsyncOperationasync=SceneManager.LoadAsyncScene("Scene",LoadSceneMode.Single);async.allowSceneActivation=false;while(async.progress<0.9f){progressText.text=async.progress+"";}while(!async.isDone){yieldreturnnull;}async.allowSceneActivation=true;}使用这段代码,场景永远不会改变。我尝试了这种典型的SceneManager.LoadScene("name"),在这种情况下,场景会在30秒后正确更改。这应该工作while(async.progress其次,我见过isDone永远不会设置为true的情况,除非场景处于活动状态。删除这些行:while(!async.isDone){yieldreturnnull;}最重要的是,你锁定第一个while循环中的代码。添加一个yield,以便应用可以继续加载代码。所以你的整个代码看起来像这样:async.allowSceneActivation=false;while(async.progress但是问题最大的罪魁祸首是Lock第一个while循环以上是C#学习教程:在后台加载新场景共享的所有内容如果对大家有用需要的话了解更多C#学习教程,希望大家多多关注---收藏不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处:
