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

スクリプト言語

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

NetworkMigrationManager

class in UnityEngine.Networking

/

継承:MonoBehaviour

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える

説明

旧ホストが失われた場合に、新しいホストがゲームを引き継ぐプロセスを管理するコンポーネント。このプロセスは「ホストマイグレーション」と呼はれます。マイグレーションマネージャーはゲーム内の各ピアの情報をすべてのクライアントに送ります。クラッシュやネットワーク停止によりホストが失われた場合、クライアントは新しいホストを選択しゲームを継続することができます。

旧ホストは新しいホスト上の新しいゲームに再参加することができます。

ホストマイグレーションが行われる際、シーン内のすべての NetworkIdentity コンポーネントオブジェクトの SyncVar と SyncList の状態が維持されます。これは、それらのオブジェクトの、シリアライズされたカスタムデータについても同様です。

ホストが失われると、ゲーム中のすべてのプレイヤーオブジェクトが無効になります。別のクライアントが新しいホストで新しいゲームに再度加わると、そのクライアントに関連するプレイヤーがホスト上で再び有効化され、他のクライアント上でオブジェクトが再生成されます。したがって、どのプレイヤーの状態データも、マイグレーション中に失われることはありません。

このクラスは、ホストが失われた場合にビヘイビアを制御するための簡易なデフォルト UI を提供します。デフォルト UI は showGUI プロパティーを有効にすると無効になります。多くの実装可能な仮想関数があり、ホストマイグレーションのビヘイビアをカスタム化できます。

ホストマイグレーションの間、クライアントが使用できるデータのみが保存されることに注意してください。もし、サーバー上でのみ使用されるデータの場合は、新しいホストになるクライアントはそれを使用することはできません。つまり、SyncVars か SyncLists 状態でないホスト上のデータは、ホストマイグレーション後は使用することはできません。

クライアントが新しいホストになるとき、コールバック関数の OnStartServer がすべてのネットワークオブジェクトに対して呼び出されます。

新しいホストで、NetworkMigrationManager は関数 NetworkServer.BecomeNewHost() を使用し、現在の ClientScene からネットワーク化されたサーバーシーンを作成します。

ゲーム内でホストマイグレーションが可能なピアは、サーバー上の connectionId によって認識されます。クライアントがゲームの新しいホストに再接続するとき、この connectionId が新しいホストに渡され、クライアントと旧ホストに接続していたクライアントをマッチングします。この Id は ClientScene 上で「reconnectId」として設定されます。

クラッシュしたりネットワーク接続を失ったゲームの旧ホストも、クライアントとして新しいゲームに再接続できます。このクライアントは ClientScene.ReconnectIdHost の特別な ReconnectId (値は 0) を使用します。

変数

clientホストへの接続に使用されるクライアントインスタンス
disconnectedFromHostホストに接続していないクライアントならば true
hostMigrationホストマイグレーションをアクティブにするかを制御
hostWasShutdown停止しているホストならば true
matchInfoマッチングの情報。一致するものがない場合は、null
newHostAddress新しいホストが接続する IP アドレス
offsetXマイグレーションマネージャーのデフォルト GUI のオフセット X (ピクセル単位)
offsetYマイグレーションマネージャーのデフォルト GUI のオフセット Y (ピクセル単位)
oldServerConnectionIdクライアントが旧ホストで与えられていた connectionId
peersゲームに関連するピアの集まり。ホストとクライアントを含む。
pendingPlayers無効になっており、通信先のクライアントの再接続を待機中のプレイヤーオブジェクト
showGUIデフォルト UI の表示をトグルするためのフラグ
waitingReconnectToNewHostホストに接続していない状態で、かつ、新しいホストに再接続するのを待機中のクライアントならば true
waitingToBecomeNewHostホストに接続しておらず、新しいホストとして選択されたクライアントならば true

Public 関数

BecomeNewHostホストへの接続が失われていたクライアントをゲームの新しいホストにする
DisablePlayerObjectsプレイヤーとしてのオブジェクトを無効にする
FindNewHost新しいホストとしてゲーム内のピアのうち 1 つを選択するユーティリティー関数
Initializeマイグレーションマネージャーをクライアントとマッチング情報とともに初期化する
LostHostOnClientホストとの接続が失われたとき、クライアント上で呼び出される
LostHostOnHostホストが停止している場合にホスト上で呼び出される
OnAuthorityUpdated非プレイヤーオブジェクトの権限が変わるときに呼び出される仮想関数
OnClientDisconnectedFromHostクライアントがホストへの接続を失ったとき呼び出される仮想関数
OnPeersUpdatedゲームのピアの集まりが変わるときに呼び出される仮想関数
OnServerHostShutdownホストをシャットダウンするときに呼び出される仮想関数
OnServerReconnectObject旧ホストが新しいホストに再接続するとき、新しいホスト上でクライアント権限を持つ非プレイヤーオブジェクトのために呼び出される仮想関数
OnServerReconnectPlayer旧ホストのクライアントが新しいホストに再接続するときに、新しいホスト上で呼び出される仮想関数
ReconnectObjectForConnectionクライアント権限のある非プレイヤーオブジェクトを再接続したクライアントとともに再構築します。NetworkServer.SpawnWithClientAuthority() と類似。
ReconnectPlayerForConnectionプレイヤーオブジェクトを再接続されたクライアントとともに再構築する。NetworkServer.AddPlayerForConnection() に類似。プレイヤーゲームオブジェクトは新しい接続のプレイヤーオブジェクトとなる。
Resetマイグレーションマネージャーをリセットし、ClientScene の ReconnectId を設定する
SendPeerInfoゲームのピアの集まりに関する情報をゲームのピアに送る

Protected 関数

OnAuthorityUpdated非プレイヤーオブジェクトの権限が変わるときに呼び出される仮想関数
OnClientDisconnectedFromHostクライアントがホストへの接続を失ったとき呼び出される仮想関数
OnPeersUpdatedゲームのピアの集まりが変わるときに呼び出される仮想関数
OnServerHostShutdownホストをシャットダウンするときに呼び出される仮想関数
OnServerReconnectObject旧ホストが新しいホストに再接続するとき、新しいホスト上でクライアント権限を持つ非プレイヤーオブジェクトのために呼び出される仮想関数
OnServerReconnectPlayer旧ホストのクライアントが新しいホストに再接続するときに、新しいホスト上で呼び出される仮想関数

継承メンバー

変数

enabled有効であれば更新され、無効であれば更新されません。
isActiveAndEnabledBehaviour が有効かどうか
gameObjectこのコンポーネントはゲームオブジェクトにアタッチされます。コンポーネントはいつもゲームオブジェクトにアタッチされています。
tagゲームオブジェクトのタグ
transform GameObject にアタッチされた Transform (アタッチされていない場合は null)
useGUILayoutこれを無効にすると、GUI のレイアウトフェーズをスキップすることができます
hideFlagsオブジェクトは非表示、シーンに保存、ユーザーが編集可能、などを設定する。
nameオブジェクト名

Public 関数

BroadcastMessageゲームオブジェクトまたは子オブジェクトにあるすべての MonoBehaviour を継承したクラスにある methodName 名のメソッドを呼び出します。
CompareTagこのゲームオブジェクトは tag とタグ付けされているかどうか
GetComponentゲームオブジェクトに type がアタッチされている場合は type のタイプを使用してコンポーネントを返します。ない場合は null です
GetComponentInChildren GameObject や深さ優先探索を活用して、親子関係にある子オブジェクトから type のタイプのコンポーネントを取得します。
GetComponentInParent GameObject や深さ優先探索を活用して、親子関係にある親オブジェクトから type のタイプのコンポーネントを取得します。
GetComponents GameObject から type のタイプのコンポーネントを「すべて」取得します。
GetComponentsInChildren GameObject や深さ優先探索を活用して、親子関係にある子オブジェクトから type のタイプのコンポーネントを「すべて」取得します。
GetComponentsInParent GameObject や深さ優先探索を活用して、親子関係にある親オブジェクトから type のタイプのコンポーネントを「すべて」取得します。
SendMessageゲームオブジェクトにアタッチされているすべての MonoBehaviour にある methodName と名付けたメソッドを呼び出します
SendMessageUpwardsゲームオブジェクトと親(の親、さらに親 ... )にアタッチされているすべての MonoBehaviour にある methodName と名付けたメソッドを呼び出します
CancelInvokeすべての Invoke をキャンセルします
Invoke設定した時間(単位は秒)にメソッドを呼び出します
InvokeRepeating設定した時間(単位は秒)にメソッドを呼び出し、repeatRate 秒ごとにリピートします
IsInvokingメソッドの呼出が保留中かどうか
StartCoroutineコルーチンを開始します
StopAllCoroutinesBehaviour 上で実行されているコルーチンをすべて停止します
StopCoroutineこの Behaviour 上で実行されている methodName という名のコルーチン、または routine として保持されているコルーチンをすべて停止します
GetInstanceIDオブジェクトのインスタンス ID を返します
ToStringゲームオブジェクトの名前を返します

Static 関数

printUnity コンソールにログを出力します (Debug.Log と同じです)
Destroyゲームオブジェクトやコンポーネント、アセットを削除します
DestroyImmediate直ちにオブジェクトを破壊する (Destroy 関数の方を使うことを推奨します)
DontDestroyOnLoad新しいシーンを読み込んでもオブジェクトが自動で破壊されないように設定します
FindObjectOfTypeタイプ type から最初に見つけたアクティブのオブジェクトを返します
FindObjectsOfTypeタイプから見つけたすべてのアクティブのオブジェクト配列を返します
Instantiateオブジェクト original のコピーを返します

Operator

boolオブジェクトが存在するかどうか
operator !=二つのオブジェクトが異なるオブジェクトを参照しているか比較します
operator ==2つのオブジェクト参照が同じオブジェクトを参照しているか比較します。

メッセージ

Awakeスクリプトのインスタンスがロードされたときに呼び出されます
FixedUpdateMonoBehaviour が有効の場合、この関数は毎回、固定フレームレートで呼び出されます。
LateUpdate Behaviour が有効の場合、LateUpdate は毎フレーム呼びだされます
OnAnimatorIKアニメーション IK (インバースキネマティクス)をセットアップするときのコールバック
OnAnimatorMoveルートモーションを修正するアニメーション動作を処理するコールバック
OnApplicationFocusプレイヤーの取得またはフォーカスを失ったときにすべてのゲームオブジェクトに送信されます。
OnApplicationPauseプレイヤーが一時停止したときにすべてのゲームオブジェクトに送信されます
OnApplicationQuitアプリケーションが終了する前にすべてのゲームオブジェクトで呼び出されます
OnAudioFilterReadOnAudioFilterRead が実装されている場合、Unity は DSP チェーンにカスタムフィルターを挿入します。
OnBecameInvisibleOnBecameInvisible はレンダラーがカメラから見えなくなったときに呼び出されます
OnBecameVisibleOnBecameVisible はレンダラーが任意のカメラから見えるようになると呼び出されます
OnCollisionEnterOnCollisionEnter はコライダー/Rigidbody が他のコライダー/Rigidbody に触れたときに呼び出されます
OnCollisionEnter2Dこのオブジェクトのコライダーに他のコライダーが接触したときに送信されます(2D Physics のみ)
OnCollisionExitOnCollisionExit はコライダー/Rigidbody と他のコライダー/Rigidbody の接触が終了したときに呼び出されます
OnCollisionExit2Dこのオブジェクトのコライダーと他のコライダーの接触が終わったときに送信されます(2D Physics のみ)
OnCollisionStayOnCollisionStay はコライダー/Rigidbody と他のコライダー/Rigidbody が接触し続けて毎フレームに一度呼び出されます
OnCollisionStay2Dこのオブジェクトのコライダーに他のコライダーが接触し続けている毎フレームの間、送信されます(2D Physics のみ)
OnConnectedToServerサーバーとの接続に成功したときにクライアント上で呼び出されます
OnControllerColliderHitOnControllerColliderHit は移動中にコントローラーがコライダーにヒットしたときに呼び出されます
OnDestroyこの関数は MonoBehaviour が破棄されるときに呼び出されます
OnDisableこの関数は Behaviour が無効/非アクティブになったときに呼び出されます
OnDisconnectedFromServerサーバーとの接続が失われたか切断されたときにクライアント上で呼び出されます
OnDrawGizmos選択可能にしたり、常に描画したいギズモを描画するには OnDrawGizmos を使用します
OnDrawGizmosSelected選択しているオブジェクトのみのギズモを描画したい場合は OnDrawGizmosSelected を使用します
OnEnableこの関数はオブジェクトが有効/アクティブになったときに呼び出されます
OnFailedToConnect接続試行がなんらかの理由で失敗したときにクライアント上で呼び出されます
OnFailedToConnectToMasterServerMasterServer への接続に問題がある場合に、クライアントまたはサーバーで呼び出されます
OnGUIOnGUI はレンダリングと GUI イベントのハンドリングのために呼び出されます
OnJointBreakゲームオブジェクトのジョイントが壊れたときに呼び出されます
OnJointBreak2Dゲームオブジェクトにアタッチされた Joint2D が壊れたときに呼び出されます
OnLevelWasLoadedこの関数は新しいレベルがロードされた後に呼び出されます
OnMasterServerEventMasterServer からイベントを報告してくるときにクライアントまたはサーバー上で呼び出されます
OnMouseDownOnMouseDown は GUIElement または Collider 上でユーザーがマウスボタンをクリックしたときに呼び出されます
OnMouseDragOnMouseDrag はユーザーが GUIElement または Collider をマウスでクリックし、ドラッグしている間呼び出されます。
OnMouseEnterOnMouseEnter は GUIElement または Collider 上にマウスが乗ったときに呼び出されます
OnMouseExitOnMouseExit は GUIElement または Collider 上からマウス離れたときに呼び出されます
OnMouseOverOnMouseOver は GUIElement または Collider 上にマウスがあり続ける限り毎フレーム呼び出され続けます
OnMouseUpOnMouseUp はユーザーがマウスボタンを離したときに呼び出されます
OnMouseUpAsButtonOnMouseUpAsButton はマウスを押した時と同じ GUIElement や Collider 上でマウスを離した時のみに呼び出されます。
OnNetworkInstantiateNetwork.Instantiate でインスタンス化されたオブジェクトに対して呼び出されます
OnParticleCollisionOnParticleCollision はパーティクルがコライダーにヒットしたときに呼び出されます
OnPlayerConnected新しいプレイヤーが接続に成功したときにサーバー上で呼び出されます
OnPlayerDisconnectedプレイヤーがサーバーから接続が切断されるたびにサーバー上で呼び出されます
OnPostRenderOnPostRender はカメラがシーンのレンダリングを完了した後に呼び出されます
OnPreCullOnPreCull はカメラがシーンをカリングする前に呼び出されます
OnPreRenderOnPreRender はカメラがシーンのレンダリングを始める前に呼び出されます
OnRenderImageOnRenderImage はすべてのレンダリングが完了し RenterTexture にレンダリングされた後に呼び出されます
OnRenderObjectOnRenderObject はカメラがシーンのレンダリングを行った後に呼び出されます
OnSerializeNetworkViewネットワークビューによって監視されるスクリプトの変数の同期をカスタマイズするために使用します
OnServerInitializedNetwork.InitializeServer が実行され完了したときにサーバー上で呼び出されます
OnTransformChildrenChangedこの関数は GameObject の Transform のすべての子の中で変更があったときに呼び出されます
OnTransformParentChangedこの関数は GameObject の Transform の parent プロパティーに変更があったときに呼び出されます
OnTriggerEnterOnTriggerEnter は Collider が他のトリガーに入ったときに呼び出されます
OnTriggerEnter2Dトリガーコライダーをアタッチしたオブジェクトが他のオブジェクトに接触したときに送信されます(2D Physics のみ)
OnTriggerExitOnTriggerExit は Collider が他のトリガーから出たときに呼び出されます
OnTriggerExit2Dトリガーコライダーをアタッチしたオブジェクトが他のオブジェクトと接触が終わったときに送信されます(2D Physics のみ)
OnTriggerStayOnTriggerStay は Collider が他のトリガーと当たり続けている毎フレーム呼び出されます
OnTriggerStay2Dトリガーコライダーをアタッチしたオブジェクトが他のオブジェクトと接触し続けている時に毎フレーム送信されます(2D Physics のみ)
OnValidateこの関数はスクリプトがロードされた時やインスペクターの値が変更されたときに呼び出されます(この呼出はエディター上のみ)
OnWillRenderObjectOnWillRenderObject はオブジェクトが表示されている場合カメラごとに 1 度呼び出されます
Resetデフォルト値にリセットします
StartStart はスクリプトが有効で、Update メソッドが最初に呼び出される前のフレームで呼び出されます
UpdateUpdate は MonoBehaviour が有効の場合に、毎フレーム呼び出されます