首页 > 代码库 > UNITY 多SCENE加载与编辑

UNITY 多SCENE加载与编辑

技术分享

Unity内部场景的加载分为两步:

  • Loading。是指从文件、内存(主要是Streamed scene AssetBundle)中加载Scene的内容,创建并读取所有相关的Game objects、Assets以及Scene game managers。所有的IO操作都在这一步完成,所以它是比较耗时的过程。当这一步完成的时候,我们内部会将加载进度标记为90%。

  • Awaking。主要是一些轻量级的操作,比如在Transform的Awaking的时候,我们会将Game objects加入到它所属于的Scene。我们这里所说的Scene加载过程中的Delay awaking就是指第二步。


比如用户有一个大场景划分成了若干个子场景,在所有场景加载完毕我们才会开始Game play。这时我们就可以推迟所有子场景的Awaking。当所有的加载第一步完成了,我们才进行所有场景的Awaking。

用户可以通过将AsyncOperation.allowSceneActivation设置成false来阻止Scene的Awaking,示例如下:

 

技术分享

 

 

 

当加载进度AsyncOperation.progress到达90%的时候,就可以将allowSceneActivation设置成true来允许Scene awaking。

UNITY 多SCENE加载与编辑