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

ContentLoadInterface.LoadContentFileAsync

建议更改

成功!

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

关闭

提交失败

由于某些原因,您建议的更改未能提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Unity.Loading.ContentFile LoadContentFileAsync(Unity.Content.ContentNamespace nameSpace, string filename, NativeArray<ContentFile> dependencies, Unity.Jobs.JobHandle dependentFence);

参数

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