Application.LoadLevelAdditiveAsync 异步累加关卡

static function LoadLevelAdditiveAsync (levelName : string) : AsyncOperation

Description描述

Loads the level additively and asynchronously in the background.

在后台异步累加关卡,也就是说在后台非同步加载新的场景,但当前的场景不会被销毁。

LoadLevelAsync()和LoadLevelAdditiveAsync()的不同在于,前者最终加载完成后,上一个场景内容会被卸载,而后者是两者重叠到一起

Unlike LoadLevelAsync, LoadLevelAdditiveAsync does not destroy objects in the current level. Objects from the new level are added to the current scene. This is useful for creating continuous virtual worlds, where more content is loaded in as you walk through the environment.

不像LoadLevelAsync,LoadLevelAdditiveAsync不销毁当前关卡的物体。物体从新的关卡添加到当前的场景。这对创建连续的虚拟世界很有用,在你漫步环境,更多的内容被加载进来。

Unity will completely load all assets and all objects in the scene in a background loading thread. This allows you to create a completely streaming world where you constantly load and unload different parts of the world based on the player position, without any hiccups in game play.

Unity将在后台线程完整加载场景所有资源和物体。这允许你加载一个新的关卡,同时当前的关卡仍在播运行,显示进度条或者创建一个完整的流世界,在那里你不断的加载和卸载基于程序位置不同的部分,在游戏中不会有任何的中断。

isDone variable from the resulting AsyncOperation can be used to query if the level load has completed. The result of a LoadLevelAdditiveAsync can also be used to yield in a coroutine.

isDone变量来自AsyncOperation异步操作的结果,可以用于如果关卡加载完成的查询。LoadLevelAdditiveAsync的结果也能在用来yield一个协同程序。

When building a player Unity automatically optimizes assets in such a way that LoadLevelAdditiveAsync will load them from disk linearly to avoid seek times. Note that background loading performance in the Unity Editor is much lower than in the web player or standalone build. In the Editor you might also get more loading hiccups than in the player.

当编译一个游戏Unity自动优化资源,LoadLevelAsync将从硬盘以线性加载它们避免从磁盘寻道时间。

注意,背景加载优先级在Unity编辑器远远低于网络播放器或独立版编译。在编辑器你或许也得到比播放器更多的加载中断。

This function requires Unity Pro.

这个函数需运行在Unity专业版

参见: AsyncOperation, Application.backgroundLoadingPriority, Application.LoadLevelAsync.

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	IEnumerator Start() {
		AsyncOperation async = Application.LoadLevelAdditiveAsync("MyAddLevel");
		yield return async;
		Debug.Log("Loading complete");
	}
}
function Start () {
	// Load the level named "MyAddLevel".
	//加载名为MyAddLevel的场景
	var async : AsyncOperation = Application.LoadLevelAdditiveAsync ("MyAddLevel");
	yield async;
	Debug.Log("Loading complete");
}
Page last updated: 2010-12-15