Version: 5.6
public void TransportReceive (byte[] bytes, int numBytes, int channelId);

パラメーター

bytes 受信したデータ
numBytes 受け取ったデータのサイズ
channelId データを受け取るチャンネル

説明

この仮想関数はアプリケーションに渡される前にカスタムのネットワーク接続クラスがネットワークからのデータを処理するのを許可します。

この関数のデフォルトの実装は受信したデータに HandleBytes() を呼び出します。カスタムの実装も HandleBytes() を使用できますが、受信したデータやその他のデータの改変されたバージョンを渡すことができます。

この例はコンソールに受信したデータを記録し、 HandleBytes に渡します。

class DebugConnection : NetworkConnection
{
    public override void TransportReceive(byte[] bytes, int numBytes, int channelId)
    {
        StringBuilder msg = new StringBuilder();
        for (int i = 0; i < numBytes; i++)
        {
            var s = String.Format("{0:X2}", bytes[i]);
            msg.Append(s);
            if (i > 50) break;
        }
        UnityEngine.Debug.LogError("TransportReceive h:" + hostId + " con:" + connectionId + " bytes:" + numBytes + " " + msg);

HandleBytes(bytes, numBytes, channelId); } }

この関数の他の用途にはデータ圧縮やデータ暗号化があります。

カスタムネットワーク接続クラスは NetworkServer.NetworkConnectionClass と NetworkClient.NetworkConnectionClass を設定することにより使用されます。

public class SpaceManager : NetworkManager
{
    void Start()
    {
        NetworkServer.NetworkConnectionClass = typeof(DebugConnection);
        NetworkClient.NetworkConnectionClass = typeof(DebugConnection);
    }
}
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961