Version: 2017.3

MessageBase

class in UnityEngine.Networking

マニュアルに切り替える

説明

ネットワークのメッセージクラスはこのクラスを継承している必要があります。これらのメッセージクラスは NetworkConnection の さまざまな Send 関数で送信するために使用されています。

MessageBase を継承したクラスの public フィールドのデータはクラスが自動的にシリアライズします。virtual メソッドの Serialize と Deserialize は開発者が正確にシリアライズ/デシリアライズを実装したいときに使用します。これらのメソッドが実装されていない場合、自動的に生成されます。

Note : Unity uses its own network serialization system. It doesn't support the [NonSerialized] attribute. Instead, use private variables.

以下の例では、メソッドが実装されていますが、メソッドを実装しない場合でも使用できます。

using UnityEngine;
using UnityEngine.Networking;

class SpawnMessage : MessageBase { public uint netId; public NetworkHash128 assetId; public Vector3 position; public byte[] payload;

// This method would be generated public override void Deserialize(NetworkReader reader) { netId = reader.ReadPackedUInt32(); assetId = reader.ReadNetworkHash128(); position = reader.ReadVector3(); payload = reader.ReadBytesAndSize(); }

// This method would be generated public override void Serialize(NetworkWriter writer) { writer.WritePackedUInt32(netId); writer.Write(assetId); writer.Write(position); writer.WriteBytesFull(payload); } }

Public 関数

Deserializeこのメソッドは、NetworkReader のストリームからメッセージオブジェクトにデータを投入するために使用します。
Serializeこのメソッドは、メッセージオブジェクトから NetworkWriter のストリームに書き込むために使用します。