Unity 泛型序列化之墙:类型安全的事件不该有样板代码税
你写了一个 GameEvent<T>。干净、类型安全、优雅。你创建了一个 GameEvent<float> 字段用来广播血量变化,打上 [SerializeField]。切到 Inspector 一看——字段消失了。就像你让 Unity 除以零一样,它用一片空白面板回敬你。
这是 Unity 最古老的架构痛点。序列化系统不懂泛型,从来没懂过。每一个试图构建类型安全、数据驱动事件系统的开发者都一头撞上了这堵墙。
这不是什么小麻烦,而是那种会毒化整个架构的限制。你要么放弃类型安全,要么淹没在样板代码里,要么接受你那漂亮的泛型设计永远无法触及 Inspector。多年来社区的标准答案一直是"手写具体类就行了"。但问题来了——如果样板代码是 100% 可预测的,为什么要人来写?
