如何解决错误:A script behaviour has a different serialization layout when loading

来源:互联网 发布:淘宝网邮票真假 编辑:程序博客网 时间:2024/06/05 16:54

在实际开发中碰到一个问题,加载一个Prefab,Unity会报以下错误:

A script behaviour has a different serialization layout when loading. (Read 24 bytes but expected 40 bytes), Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?

这是代码:

using UnityEngine;public class ObjectPreview : MonoBehaviour {    #if UNITY_EDITORpublic GameObject obj;void Start () {// code ...}    #endif}
也就是说,,ObjectPreview在编辑器模式下和非编辑器模式下, 序列化出来的内容是不同的

那么, 由于美术(或者其它团队成员)做的Prefab是在编辑器环境下产生的, 所以是带有obj的序列化数据

但是在运行时, 由于这个UNITY_EDITOR宏,导致运行时与编辑器 序列化内容不同!

正确的做法是去掉 #if UNITY_EDITOR,或者把#if UNITY_EDITOR包住整个类!


0 0