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

スクリプト言語

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

NetworkTransform.clientMoveCallback3D

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える
public var clientMoveCallback3D: Networking.NetworkTransform.ClientMoveCallback3D;

説明

クライアント主導でオブジェクトの動きをサーバー上で検証するために使用できるコールバック

このコールバックは、3D Physics で使用するオブジェクトで動作します。コールバック関数は動きのリクエストを完全に拒否するために false を返す場合もあります。また、参照渡しが行われ、動きのパラメーターを変更するかもしれません。

以下の例では、OnStartServer でコールバックを設定し、何度か接続に失敗した後、無効な位置にオブジェクトを動かすクライアントを切断します。

no example available in JavaScript
class MyMover
{
	
	public int cheatCount = 0;

public bool ValidateMove(ref Vector3 position, ref Vector3 velocity, ref Quaternion rotation) { Debug.Log("pos:" + position); if (position.y > 9) { position.y = 9; cheatCount += 1; if (cheatCount == 10) { Invoke("DisconnectCheater", 0.1f); } }

return true; }

void DisconnectCheater() { Debug.LogError("Disconnecting cheater for movement violations " + netId); GetComponent<NetworkIdentity>().connectionToClient.Disconnect(); }

public override void OnStartServer() { GetComponent<NetworkTransform>().clientMoveCallback3D = ValidateMove; } }

この種のサーバー側の動作の検証は、クライアント側の動きの検証と共に使うべきです。クライアントが不正行為でクライアント側の動作確認をパスしている場合、コールバックは失敗を検出する必要があります。