求助!!!Unity3D-判断场景是否加载完成?

cjawake 2017-11-07 11:26:09
Unity3D-点击按钮切换场景,切换成功后如何在当前点击事件下立即执行某个函数?


我在网上查找过关于:判断场景是否加载完成 的问题,很多回答都的函数都是过时,我用的是unity5.6.1p1版本的,
SceneManager.LoadScene();切换场景

求解答!!!!!!
...全文
3978 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
团团团团 2019-10-16
  • 打赏
  • 举报
回复
private IEnumerator StartLoading() { AsyncOperation op = SceneManager.LoadSceneAsync("所加载的场景名称", LoadSceneMode.Single); op.allowSceneActivation = false;//这个变量是手动赋值 while (!op.isDone) { yield return new WaitForSeconds(0.5f); if (op.progress >= 0.9f)//加载进度大于等于0.9时说明加载完毕 { op.allowSceneActivation = true;//手动赋值为true(此值为true时,isDone自动会跟着变 } if (op.isDone) { break; } } yield return null; }//在此之后说明完全加载完毕,做你想做的事情
popcorn丶 2019-07-18
  • 打赏
  • 举报
回复
op.progress 查看进度
popcorn丶 2019-07-18
  • 打赏
  • 举报
回复
op = SceneManager.LoadSceneAsync(sceneName, mode);
op.allowSceneActivation = false;
jjk_by 2018-09-18
  • 打赏
  • 举报
回复
可以有个取巧的方法,在要加载 的场景中 某个对象上 添加一个组件,在组件 start 的时候(即场景已经加载完成了), 调用个方法出来(或者广播个消息出来),外部就知道这个场景已经加载完了!
类似这样

public class PosGroupComp : MonoBehaviour {

// Use this for initialization
void Start ()
{
MsgMgr.Instance.DispatchMessage(MessageID.Msg_LoadPosGroupSceneDown,this,gameObject);
}

// Update is called once per frame
void Update () {

}

}

6,721

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 Google技术社区
社区管理员
  • Google技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧