MessageBase

class in UnityEngine.Networking

Switch to Manual

Description

Network message classes should be derived from this class. These message classes can then be sent using the various Send functions of NetworkConnection, NetworkClient and NetworkServer.

Public data fields of classes derived from MessageBase will be automatically serialized with the class. The virtual methods Serialize and Deserialize may be implemented by developers for precise control, but if they are not implemented, then implementations will be generated for them.

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

In the example below, the methods have implementations, but if those methods were not implemented, the message would still be usable.

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 Functions

DeserializeThis method is used to populate a message object from a NetworkReader stream.
SerializeThe method is used to populate a NetworkWriter stream from a message object.
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961