Сериализация 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;
}