Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

MessageBase

class in UnityEngine.Networking

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

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

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

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

#pragma strict
class SpawnMessage extends MessageBase {
	public var netId;
	public var assetId;
	public var position;
	public var payload;
	// This method would be generated
	public override function Deserialize(reader) {
		netId = reader.ReadPackedUInt32();
		assetId = reader.ReadNetworkHash128();
		position = reader.ReadVector3();
		payload = reader.ReadBytesAndSize();
	}
	// This method would be generated
	public override function Serialize(writer) {
		writer.WritePackedUInt32(netId);
		writer.Write(assetId);
		writer.Write(position);
		writer.WriteBytesFull(payload);
	}
}
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 のストリームに書き込むために使用します。