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