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

MakeSerializableAttribute

класс в UnityEngine

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

Описание

Зарегистрировать тип как Serializable.

Использование SerializeReference к полю, чтобы сериализовать его как ссылку на другой объект. Сам объект, на который идёт ссылка, Unity тоже сериализует. Типы, использующие SerializeReference, должны иметь атрибут [Serializable]. Если атрибут не указать, Unity всё равно сериализует класс, но выдаст предупреждение для каждого типа без атрибута.

Если у вас нет доступа к исходному коду типа, который вы сериализируете, например типов, которые находятся в пакете, который поставляется только с предкомпилированными сборками, то вы можете использовать атрибут [MakeSerializable]. Unity рассматривает типы с MakeSerializable так, как если бы они имели атрибут [Serialize], и подавляет предупреждение.

Атрибут MakeSerializable является атрибутом сборки и может быть вставлен в любое место в исходном коде проекта. Во время перезагрузки домена Редактор сканирует все загруженные сборки на наличие этих атрибутов и регистрирует типы как поддающиеся сериализации. MakeSerializable в остальном не влияет на объекты, которые сериализированы с помощью обычной сериализации, например с помощью [SerializeField]. Он влияет только на объекты, сериализированные с помощью [SerializeReference].

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

using UnityEngine;

// Ask Unity to consider the given type serializable [assembly: MakeSerializable(typeof(Some3rdPartyNamespace.SomeType))]

class MyMonoBehaviour : MonoBehaviour { // This would issue a warning if we had not marked the type serializable above [SerializeReference] public Some3rdPartyNamepace.SomeType theMeaningOfLife; }

// This could live any where in your project, even in a 3rd party assembly which you do not have source code for // but for completeness of this example it is here in a namespace namespace Some3rdPartyNamespace { // The type is not mark serializable class SomeType { public int meaningOfLife; } }

Конструкторы

Конструктор Описание
MakeSerializableAttributeКонструктор для атрибута MakeSerializable.