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 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 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.
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:
Funciones Mathf
Estructuras simples e independientes; por ejemplo, estructuras matemáticas como Vector3 y Quaternion
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