Unity5.3更新的多场景编辑功能

装了5.3.4版本的Unity后一直没有研究,今天有空看了一下他的新功能多场景编辑。|
不多说上图。
Unity5.3更新的多场景编辑功能_第1张图片

在图里我们可以看到,我们可以同时在Hierarchy面板把场景资源拖放到里边,我这两个场景里分别有一个cube和一个球体。先上一张效果图。

Unity5.3更新的多场景编辑功能_第2张图片Unity5.3更新的多场景编辑功能_第3张图片

上图是在scene视图里的效果。

这个功能很强大的说,这样我们就可以把大场景切割成若干小场景进行流媒体加载。也方便多人协同工作,Unity一直不能多人同时编辑一个场景什么的,现在都可以解决用这个。同时新的api还支持卸载场景。这样可以很好的控制游戏的流畅性。


Unity5.3更新的多场景编辑功能_第4张图片

下面来说一下代码的应用:

放上一段简单的示例代码。使用多场景加载:

1.需要引用using UnityEngine.SceneManagement;

2.LoadSceneMode里有两个选择,一个是Additive一个是Single,前者是加载场景到当前场景,后者是单独加载这个场景。

3.卸载场景的方式如图。

4.更多的API可以去查看手册,

关于编辑器:

Unity更新的关于多场景编辑的编辑器的API,具体可以查看手册搜索:UnityEditor.SceneManagement;

在Unity5.3以上的版本使用object的DontDestroyOnLoad()方法将某个GameObject标记能这个方法后,在播放场景后,会发现多一个DonDestroyOnLoad场景,它包含了之前标记了的游戏对象。

DontDestroyOnLoad Scene仅仅存在于Runtime,或者是Play mode。它不能从外部访问,仅仅是Unity内部用于管理标记为DontDestroyOnLoad的Game object。

官方说不推荐使用DontDestroyOnLoad Scene方法,因为会增加很多计算量,推荐从5.3以后的版本自己建立一个场景去管理这些需要在DontDestroyOnLoad Scene这个场景里的游戏物体,这样会方便很多,同时节约资源。

5.3版本lightmap&NavMesh Baking都支持多场景操作,API都有更新。

通过脚本进行Baking,Lightmapping.BakeMultipleScenes()和NavMeshBuilder.BuildNavMeshForMultipleScenes()都支持一次烘焙多个场景。

另外每个场景的Akwing,我们可以通过AsyncOperation.allowSceneActivation设置成false来阻止Scene的Awaking,

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



你可能感兴趣的:(Unity3D)