Сериализация GameObject в Unity

У меня есть класс, как -

[serializable]
public class DemoClass{
    [SerializeField]
    public GameObject gameObject;
}

Я хочу хранить данные, используя сериализуемый. Док Unity говорит, что GameObject является serializeField. Но это дает исключение -

SerializationException: Type UnityEngine.GameObject is not marked as Serializable.

У кого-нибудь есть идеи по этому поводу?

2 ответа

Решение

Добавить тег [Serializable] перед именем вашего класса:

[Serializable]
public class DemoClass{
    public GameObject gameObject;
    public AudioClip audio;
}

Документация

Редактировать: если вы все еще хотите сериализовать GameObject Есть несколько плагинов, которые позволяют сериализовать объекты Unity. Смотрите: Сериализация времени выполнения для Unity

Вам нужно будет добавить [serializable] приписать классы, которые вы хотите сериализовать. Если какой-либо из классов в вашем классе еще не сериализуем, вам нужно также добавить этот атрибут в эти классы.

например

[Serializable]
public class DemoClass
{
   public GameObject gameObject;
   public AudioClip audio;
}
Другие вопросы по тегам