Unity 6.3
0 онлайн 86 гостей 3 в системе
Вход

ContentLoadInterface.LoadContentFileAsync

Declaration

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

Параметры

Параметр Описание
nameSpace ContentNamespace используются для фильтрации результатов.
имя файла Путь к файлу на диске.
зависимости Список объектов ContentFile, на которые будет ссылаться загружаемый файл. Порядок должен соответствовать порядку, возвращённому процессом сборки. Значение ContentFile.GlobalTableDependency можно использовать, чтобы указать, что для разрешения ссылок следует применять PersistentManager. Это позволяет создавать ссылки на такие файлы, как "unity default resources".
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 } }