Version: 2017.3
Serialización personalizada
UnityEvents (Eventos de Unity)

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 with editorial review

Serialización personalizada
UnityEvents (Eventos de Unity)
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961