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; } }