class in UnityEngine.Networking



UNET の汎用的シリアライザー(バイト配列で読み取り)

このクラスは NetworkWriter とセットになっており、UNET コマンド、RPC 呼び出し、イベント、低レベルメッセージなどのデータをシリアライズするために使用します。

using UnityEngine;
using UnityEngine.Networking;

public class ExampleScript : MonoBehaviour { // Writing data to a NetworkWriter and then // Converting this to a NetworkReader. void Start() { // The data you add to your writer must be prefixed with a message type. // This is in the form of a short. short myMsgType = 143;

NetworkWriter writer = new NetworkWriter();

// You start the message in your writer by passing in the message type. // This is a short meaning that it will take up 2 bytes at the start of // your message. writer.StartMessage(myMsgType);

// You can now begin your message. In this case we will just use strings. writer.Write("Test data 1"); writer.Write("Test data 2"); writer.Write("Test data 3");

// Make sure to end your message with FinishMessage() writer.FinishMessage();

// You can now access the data in your writer. ToArray() returns a copy // of the bytes that the writer is using and AsArray() returns the // internal array of bytes, not a copy. byte[] writerData = writer.ToArray();

CreateNetworkReader(writerData); }

void CreateNetworkReader(byte[] data) { // We will create the NetworkReader using the data from our previous // NetworkWriter. NetworkReader networkReader = new NetworkReader(data);

// The first two bytes in the buffer represent the size // of the message. This is equal to the NetworkReader.Length // minus the size of the prefix. byte[] readerMsgSizeData = networkReader.ReadBytes(2); short readerMsgSize = (short)((readerMsgSizeData[1] << 8) + readerMsgSizeData[0]); Debug.Log(readerMsgSize);

// The message type added in NetworkWriter.StartMessage // is to be read now. It is a short and so consists of // two bytes. It is the second two bytes on the buffer. byte[] readerMsgTypeData = networkReader.ReadBytes(2); short readerMsgType = (short)((readerMsgTypeData[1] << 8) + readerMsgTypeData[0]); Debug.Log(readerMsgType);

// If all of your data is of the same type (in this case the // data on our buffer is comprised of only strings) you can // read all the data from the buffer using a loop like so. while (networkReader.Position < networkReader.Length) { Debug.Log(networkReader.ReadString()); } } }


LengthThe current length of the buffer.


NetworkReader新規に NetworkReader オブジェクトを作成します。

Public 関数

ReadBooleanストリームから boolean を読み取ります。
ReadByteストリームから byte を読み取ります。
ReadBytesAndSizeこれは 16 ビットのバイト数とストリームから指定したサイズのバイト配列を読み取ります。
ReadCharストリームから char を読み取ります。
ReadColorColor オブジェクトを読み取ります。
ReadColor32Color32 オブジェクトを読み取ります。
ReadDecimalストリームから decimal を読み取ります。
ReadDoubleストリームから double を読み取ります。
ReadGameObjectGameObject の参照を読み取ります。
ReadInt16ストリームから signed 16 ビット int を読み取ります。
ReadInt32ストリームから signed 32 ビット int を読み取ります。
ReadInt64ストリームから signed 64 ビット int を読み取ります。
ReadMatrix4x4Matrix4x4 オブジェクトを読み取ります。
ReadNetworkHash128NetworkHash128 の アセット ID を読み取ります。
ReadNetworkIdストリームから NetworkInstanceId を読み取ります。
ReadNetworkIdentityNetworkIdentity の参照を読み取ります。
ReadPackedUInt3232 ビットの可変長符号化した値を読み取ります。
ReadPackedUInt6464 ビットの可変長符号化した値を読み取ります。
ReadPlanePlane オブジェクトを読み取ります。
ReadQuaternionQuaternion オブジェクトを読み取ります。
ReadRayRay オブジェクトを読み取ります。
ReadRectRect オブジェクトを読み取ります。
ReadSByteストリームから signed byte を読み取ります。
ReadSceneIdストリームから NetworkSceneId を読み取ります。
ReadSingleストリームから float を読み取ります。
ReadStringストリームから文字列を読み取ります(最大は 32k バイト)。
ReadTransformTransform の参照を読み取ります。
ReadUInt16ストリームから unsigned 16 ビット int を読み取ります。
ReadUInt32ストリームから unsigned 32 ビット int を読み取ります。
ReadUInt64ストリームから unsigned 64 ビット int を読み取ります。
ReadVector2Vector2 オブジェクトを読み取ります。
ReadVector3Vector3 オブジェクトを読み取ります。
ReadVector4Vector4 オブジェクトを読み取ります。