Version: 2020.2
Serialización personalizada
JSON Serialization

Errores de serialización de scripts

La serialización es el proceso automático de transformación de estructuras de datos o estados de objeto en un formato que Unity puede almacenar y reconstruir más tarde. (Consulte la documentación sobre Script Serialization para obtener más información).

En determinadas circunstancias, la serialización de scripts puede provocar errores. Las correcciones a algunos de estos se enumeran a continuación.

Llamar al Unity Scripting API desde el constructor o los inicializadores de campo

Llamar el API de Scripting como GameObject.Find dentro de un constructor MonoBehaviour o inicializador de campo desencadena el error: “Find is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call in in Awake or Start instead.”

Solucione esto haciendo la llamada a la API de scripting en MonoBehaviour.Start en lugar de en el constructor.

Llamar a Unity Scripting API durante la deserialización

Llamar el API de scripting como GameObject.Find desde el constructor de una clase marcada con System.Serializable desencadena el error “Find is not allowed to be called during serialization, call it from Awake or Start instead.”

Para arreglar esto, edite su código para que no haga llamadas de API de scripting en ningún constructor para ningún objeto serializado.

API del Unity Scripting API segura para hilos

La mayoría de la API de scripting se ve afectada por las restricciones enumeradas anteriormente. Solo partes selectas de la API Unity scripting están exentas y pueden ser llamadas desde cualquier lugar. Estos son:

Para reducir el riesgo de errores durante la serialización, solo llame a los métodos de la API que son autónomos y no es necesario obtener o establecer datos en Unity mismo. Solo llame a estos si no hay alternativa.


• 2017–05–15 Page published

Serialización personalizada
JSON Serialization