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

パラメーター

writer ストリームへ書き込むために使用する Writer
initialState 初期状態かどうかを示します

戻り値

bool データが書き込まれた場合は true を返します。

説明

カスタムのシリアライズデータを送ることをオーバーライドするための virtual 関数。シリアライズデータを送るための関連関数は OnDeserialize()

initialState フラグは初めてオブジェクトをシリアライズした場合と、インクリメンタルな更新が送信された場合とを区別するのに役立ちます。初めてオブジェクトがクライアントに送信されるときは、完全な状態のスナップショットを送信する必要があります。しかし、後につづく更新では、インクリメンタルな変更のみを送信し、帯域幅を節約できます。SyncVar フック関数は initialState が true のときは呼び出されず、インクリメンタルな更新のときのみ呼び出されます。

クラスに SyncVar がある場合、この関数と OnDeserialize() は自動的にクラスに加えられます。そのため、 SyncVars を持つクラスは、カスタムのシリアライズの関数を持つことはできません。

OnSerialize 関数は、更新が送られなければならないことを示すために True を返します。True が返されるとそのスクリプト用のダーティビットは 0 に設定され、False が返されるとダーティビットは変更されません。このおかげで、スクリプトに複数の変更が加えられた場合に、それを毎フレーム送信するのではなく、蓄積してシステムの準備が整ったときに送信するということが可能になります。