Unity序列化系统架构解析:字节序与跨平台数据兼容性 开场小李在团队里负责跨平台存档功能。上周他把 PC 上能正常读取的关卡数据部署到一台大端序的老主机上,测试同学反馈:玩家加载存档后角色位置全乱,任务道具全部丢失,血量直接溢出成天文数字。他排查了一整天逻辑代码,最后发现根源根本不在业务层,而是二进制文件里的字节序——这是自研二进制序列化最容易翻车的盲区。这篇文章要回答三个问题:字节序到底是什么、Unity 自己的序列化器为什么能跨平台而你的裸字节流不能、以及一套真正"写到哪都能读"的二进制存档该怎么设计。一、先搞懂字节序:它是什么,为什么会存在1.1 同一个整数,两种摆法字节序(Endianness)决定一个多字节数据在内存里"哪头先放"。一个 32 位整数0x12345678:小端序(Little-Endian):低位字节放低地址,内存布局为78 56 34 12。x86/x64 全是小端,ARM 默认也跑小端模式——你日常开发的 PC、手机、Switch 都是这一类。大端序(Big-Endian):高位字节放低地址,内存布局为12 34 56 78。历史上的 PowerPC 主机(PS3、Xbox 360、Wii)是大端,TCP/IP 网络协议规定的"网络字节序"也是大端。后果很直接:在小端 PC 上原样写出的文件,被大端机器按同样规则读回来,0x12345678会变成0x78563412;浮