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

スクリプト言語

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

NetworkConnection.TransportRecieve

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える
public function TransportRecieve(bytes: byte[], numBytes: int, channelId: int): void;
public void TransportRecieve(byte[] bytes, int numBytes, int channelId);

パラメーター

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

説明

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

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

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

no example available in JavaScript
class DebugConnection : NetworkConnection
{
	public override void TransportRecieve(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("TransportRecieve h:" + hostId + " con:" + connectionId + " bytes:" + numBytes + " " + msg);

HandleBytes(bytes, numBytes, channelId); } }

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

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

no example available in JavaScript
public class SpaceManager : NetworkManager 
{

void Start() { NetworkServer.NetworkConnectionClass = typeof(DebugConnection); NetworkClient.NetworkConnectionClass = typeof(DebugConnection); } }