nameSpace | 用于筛选结果的 ContentNamespace。 |
filename | 磁盘上的文件的路径。 |
dependencies | 要加载的文件所引用的 ContentFile 列表。顺序必须与构建过程中返回的顺序匹配。 ContentFile.GlobalTableDependency 可用于指示 PersistentManager 应用于解析引用。这允许引用类似于“unity 默认资源”的文件。 |
dependentFence | 在该 JobHandle 完成之前,加载将不会开始。如果不存在依赖关系,可以使用默认 JobHandle。 |
ContentFile 用于访问加载过程结果的句柄。
从磁盘异步地加载已序列化的文件。
可以使用返回的 ContentFile 访问加载操作的状态。使用此函数加载的对象不会被垃圾回收;用户需要调用 ContentFile.UnloadAsync 以在不再需要资源时释放资源。即使加载失败,用户也必须调用 ContentFile.UnloadAsync。
using System.Collections; using Unity.Collections; using Unity.Content; using Unity.Loading; using UnityEngine;
public class SampleBehaviour : MonoBehaviour { public IEnumerator Start() { NativeArray<ContentFile> empty = new NativeArray<ContentFile>(); ContentFile depFileHandle = ContentLoadInterface.LoadContentFileAsync(ContentNamespace.Default, "path/to/depfile", empty);
NativeArray<ContentFile> depFiles = new NativeArray<ContentFile>(1, Allocator.Temp); depFiles[0] = depFileHandle; ContentFile rootFileHandle = ContentLoadInterface.LoadContentFileAsync(ContentNamespace.Default, "path/to/rootfile", depFiles); depFiles.Dispose();
// yield coroutine until loading is complete while (rootFileHandle.LoadingStatus == LoadingStatus.InProgress) yield return null;
ulong localFileIdentifierOfObjectIWant = 25; GameObject obj = (GameObject)rootFileHandle.GetObject(localFileIdentifierOfObjectIWant);
// When done using obj. unload both files. ContentFileUnloadHandle unloadHandleRoot = rootFileHandle.UnloadAsync(); ContentFileUnloadHandle unloadHandleDep = depFileHandle.UnloadAsync();
// yield coroutine until loading is complete while (!unloadHandleRoot.IsCompleted || !unloadHandleRoot.IsCompleted) yield return null;
// file is now completly unloaded. obj has been deleted } }