版本: Unity 6 (6000.0)
语言英语
  • C#

ContentLoadInterface.LoadSceneAsync

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每项建议更改,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Unity.Loading.ContentSceneFile LoadSceneAsync(Unity.Content.ContentNamespace nameSpace, string filename, string sceneName, Unity.Loading.ContentSceneParameters sceneParams, NativeArray<ContentFile> dependencies, Unity.Jobs.JobHandle dependentFence);

参数

dependencies 将被加载文件引用的 ContentFile 列表。排序必须与构建过程返回的排序匹配。ContentFile.GlobalTableDependency 可用于指示 PersistentManager 应用于解析引用。这允许引用诸如“unity 默认资源”之类的文件。
nameSpace 用于过滤结果的 ContentNamespace。
filename 磁盘上的文件路径。
sceneName 将应用于场景的名称。
sceneParams 将各种参数收集到一个地方的结构体。
dependentFence 在该 JobHandle 完成之前,加载不会开始。

返回值

ContentSceneFile 用于访问加载过程结果的句柄。

描述

从磁盘异步加载场景序列化文件。

using System.Collections;
using Unity.Collections;
using Unity.Content;
using Unity.Loading;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SampleBehaviour : MonoBehaviour { public IEnumerator Start() { NativeArray<ContentFile> empty = new NativeArray<ContentFile>(); ContentFile depFileHandle = ContentLoadInterface.LoadContentFileAsync(ContentNamespace.Default, "path/to/depfile", empty);

var sceneParams = new ContentSceneParameters(); sceneParams.loadSceneMode = LoadSceneMode.Additive; sceneParams.localPhysicsMode = LocalPhysicsMode.None; sceneParams.autoIntegrate = false;

NativeArray<ContentFile> files = new NativeArray<ContentFile>(1, Allocator.Temp, NativeArrayOptions.ClearMemory); files[0] = depFileHandle; ContentSceneFile op = ContentLoadInterface.LoadSceneAsync(ContentNamespace.Default, "path/to/scene", "TestScene", sceneParams, files); files.Dispose();

// wait until the async loading process completes while (op.Status == SceneLoadingStatus.InProgress) yield return null;

op.IntegrateAtEndOfFrame();

// wait one frame yield return null;

// scene is now loaded and integrated ...

// unload scene op.UnloadAtEndOfFrame(); yield return null;

ContentFileUnloadHandle unloadHandleDep = depFileHandle.UnloadAsync();

while (!unloadHandleDep.IsCompleted) yield return null; } }