Version: 5.6
public bool TransportSend (byte[] bytes, int numBytes, int channelId, out byte error);

パラメーター

bytes 送信するデータ
numBytes 送信するデータのサイズ
channelId データを送信するチャンネル
error 送信のエラーコード

戻り値

bool データが送信された場合、True を返します。

説明

この仮想関数はネットワークトランスポートレイヤーに行く前にカスタムのネットワーク接続クラスがアプリケーションによって送信されたデータを処理するを許可します。

この関数のデフォルトの実装は提供されたデータと NetworkTransport.Send() を呼び出しますが、カスタム実装は変更されたバージョンのデータを渡すことができます。この例はコンソールに送信されたデータを記録します。

class DebugConnection : NetworkConnection
{
    public override bool TransportSend(byte[] bytes, int numBytes, int channelId, out byte error)
    {
        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("TransportSend    h:" + hostId + " con:" + connectionId + " bytes:" + numBytes + " " + msg);

return NetworkTransport.Send(hostId, connectionId, channelId, bytes, numBytes, out error); } }

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

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

public class SpaceManager : NetworkManager
{
    void Start()
    {
        NetworkServer.NetworkConnectionClass = typeof(DebugConnection);
        NetworkClient.NetworkConnectionClass = typeof(DebugConnection);
    }
}