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

参数

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

返回

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

描述

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

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

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

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

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