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

PreferBinarySerialization

класс в UnityEngine

Выполнено в:UnityEngine.CoreModule

Описание

Предпочтите производный тип ScriptableObject для использования двоичной серийной записи независимо от режима серийной записи ассетов проекта.

Это полезно для пользовательских типов ассетов, которые содержат большое количество данных. Всегда сохранять их в двоичном формате может повысить производительность чтения/записи, а также создать более компактные представления на диске. Основные недостатки заключаются в том, что двоичные файлы ассетов больше не читаются человеком, и что вы больше не можете объединять их в вашем программном обеспечении управления ревизиями.

Сериализация ассетов в Unity всегда использует последовательный режим сериализации по всему файлу. В результате, когда файл ассета содержит несколько ассетов, может не всегда быть возможным уважать желание принудить конкретный ассет использовать двоичную сериализацию. Режим сериализации файла ассета контролируется главным ассетом в этом пути. В результате, необходимо проявлять осторожность при составлении сложных ассетов с помощью AssetDabase.CreateAsset и AssetDatabase.AddObjectToAsset, чтобы убедиться, что главный ассет является объектом с этим набором атрибутов. Файлы Scene всегда следуют режиму сериализации ассета, настроенному в проекте, таким образом PreferBinarySerialization всегда игнорируется для ассетов, встроенных в сцены.

Атрибут может быть применен только к производным классам ScriptableObject, он будет игнорироваться для всех других типов.

using UnityEngine;

// Custom asset type that prefers binary serialization. // // Create a new asset file by going to "Asset/Create/Custom Data". // If you open this new asset in a text editor, you can see how it // is not affected by changing the project asset serialization mode. // [CreateAssetMenu] [PreferBinarySerialization] public class CustomData : ScriptableObject { public float[] lotsOfFloatData = new[] { 1f, 2f, 3f }; public byte[] lotsOfByteData = new byte[] { 4, 5, 6 }; }