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

PackedAssets

класс в UnityEditor.Build.Reporting

Наследуется от:Object

Описание

Продление срока действия BuildReport класс, отслеживающий вклад ассетов в размер сборки.

В процессе сборки создаётся объект PackedAssets для каждого сериализованного файла, а также каждого файла resS и resource, сформированного сборкой. Сериализованные файлы содержат сериализованные объекты Unity из сцен и ассетов.

Сведения PackedAsset позволяют анализировать вклад отдельных ассетов или их типов в размер сборки, например вычислять суммарный размер всех текстур.

Примеры имён сериализованных файлов в выходных данных сборки Player: resources.assets, sharedassets0.assets и globalgamemanagers.assets. Примечание: содержимое сцен в выходных данных сборки Player записывается в сериализованные файлы с именами level0, level1, level2 и т. д. Однако объекты PackedAsset не создаются ни для файлов level, ни для файла globalgamemanager.

AssetBundle с ассетами содержит один сериализованный файл с именем наподобие «CAB-b8befc517982290c55526f35cbb7f03d». AssetBundle со сценами содержит несколько сериализованных файлов.

Объект PackedAssets для сериализованного файла записывает размер заголовка в свойство overhead, а сведения о каждом объекте — в свойство contents.

Файлы с расширением .resource содержат аудио- или видеоданные, на которые ссылается объект AudioClip либо VideoClip в связанном сериализованном файле. Например, level1.resource содержит аудио- и видеоданные объектов из сериализованного файла level1. Объект PackedAsset для файла .resource хранит сведения об исходном ассете для каждого блока аудио- или видеоданных в этом файле.

Аналогично объект PackedAsset для файла .resS хранит сведения о размере и происхождении данных Texture и Mesh в этом файле.

Примечание: в больших сборках объекты PackedAsset могут иметь очень большой размер и потреблять значительный объём памяти. При работе с этими данными рекомендуется пройти их один раз, чтобы заполнить меньшие структуры данных либо экспортировать сведения в другой формат, требуемый внешними инструментами.

Дополнительные ресурсы: PackedAssetInfo

using UnityEngine;
using UnityEditor;
using UnityEditor.Build.Reporting;
using System.Text;

public class BuildReportPackedAssetsExample { [MenuItem("Example/Show PackedAssets from Latest Build")] static void ShowPackedAssets() { var buildReport = BuildReport.GetLatestReport();

if (buildReport == null) { Debug.Log("Please run a Player or AssetBundle build, then try again"); return; }

var sb = new StringBuilder(); var packedAssets = buildReport.packedAssets;

sb.AppendLine("Packed Assets:"); foreach (var packedAsset in buildReport.packedAssets) { var packedAssetInfoArray = packedAsset.contents; sb.AppendLine($" {packedAsset.shortPath} Item count: {packedAssetInfoArray.Length}"); }

//Example output:

//Packed Assets: // globalgamemanagers.assets Item count: 11 // resources.assets Item count: 2 // etc. Debug.Log(sb.ToString()); } }

Свойства

Свойство Описание
contentsМассив объектов PackedAssetInfo, содержащий информацию о содержимом части файла, на который делается ссылка.
overheadРазмер заголовка файла ссылки.
shortPathИмя файла
Унаследованные члены 4

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.