Version: 2017.3
public bool OnSerialize (Networking.NetworkWriter writer, bool initialState);

参数

writer 用于向流写入数据的写入器。
initialState 如果调用此方法,则发送初始状态。

返回

bool 如果已写入数据,则为 true。

描述

一种虚拟函数,通过重载发送自定义序列化数据。与发送序列化数据相对应的函数是 OnDeserialize()。

initialState 标志有助于把第一次序列化对象的时间与能够发送增量更新的时间区分开。第一次将对象发送到客户端时,该对象必须包括完整状态快照,但后续更新可以通过仅包括增量变更来节省带宽。请注意,当 initialState 为 true 时,系统不调用 SyncVar 钩子函数,此函数仅在增量更新时调用。

如果一个类有 SyncVars,那么系统会自动向此类添加此函数和 OnDeserialize() 的实现。因此有 SyncVars 的类不能同时拥有自定义序列化函数。

OnSerialize 函数需要返回 true,以表明应该发送更新。如果它返回 true,那么该脚本的脏位会设为零;如果它返回 false,则脏位不变。该方法允许对脚本的多个更改随时间累积,并在系统就绪时发送,而不是按帧发送。