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

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

NetworkIdentity

class in UnityEngine.Networking

/

Inherits from: MonoBehaviour

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える

Description

NetworkIdentity はサーバーとクライアント間のネットワークをまたいでオブジェクトを識別します。その主要なデータは、サーバーによって配置され、それからクライアント上で設定される NetworkInstanceId です。これは、ネットワーク通信において、異なるマシンでゲームオブジェクトを見つけるために使用されます。

NetworkIdentity は、オブジェクトの情報をネットワークと同期するのに使用されます。サーバーだけが NetworkIdentity コンポーネントを持ったオブジェクトのインスタンスを作成しなければなりません。そうでないと、インスタンスがシステムと正しく接続されません。

サブコンポーネントの階層がある複雑なオブジェクトに関しては、NetworkIdentity は階層のルートにあることが必要です。階層のサブコンポーネントに複数の NetworkIdentity コンポーネントを持つことはサポートされていません。

NetworkBehaviour スクリプトが正常に機能するためには、ゲームオブジェクト上に NetworkIdentity を必要とします。

NetworkIdentity はオブジェクトの NetworkBehaviours のダーティな状態を管理します。NetworkBehaviours がダーティであるのを見つけると、更新パケットを作成しクライアントに送信します。

NetworkIdentity に管理されるシリアライズの更新のフローは以下のとおりです。

* 各 NetworkBehaviour にダーティマスクがあります。このマスクは OnSerialize の中で syncVarDirtyBits として使用可能です。

* NetworkBehaviour スクリプト内のそれぞれの SyncVar にダーティマスクの中のビットが一つアサインされます。

* SyncVar の値が変更されると、その SyncVar 用のビットがダーティマスク内に設定されます。

* または、SetDirtyBit() の呼び出しによって直接ダーティマスクに記述されます。

* NetworkIdentity オブジェクトが、更新のループの一部としてサーバー上で検証される。

* NetworkIdentity の NetworkBehaviour にダーティなものがある場合、UpdateVars パケットがそのオブジェクト用に作成されます。

* UpdateVars パケットが OnSerialize の呼び出しによってオブジェクトの各 NetworkBehaviour に追加されます。

* ダーティでない NetworkBehaviour が、そのダーティビットのパケットに 0 を記述します。

* ダーティな NetworkBehaviour がそのダーティマスクを記述し、その後、変更された SyncVars の値を記述します。

* OnSerialize が NetworkBehaviour に対して true を返す場合は、その NetworkBehaviour に関するダーティマスクはリセットされ、その値が変わるまで 再び送信されません。

* UpdateVars パケットが、オブジェクトを観測しているクライアントで準備の整ったものに送信されます。

クライアント上での流れ:

* UpdateVars パケットがオブジェクト用に受け取られます。

* OnDeserialize 関数がオブジェクトの各 NetworkBehaviour スクリプト用に呼び出されます。

* オブジェクトの各 NetworkBehaviour スクリプトがダーティマスクを 1 つ読み込みます。

* NetworkBehaviour のダーティマスクが 0 だと OnDeserialize 関数は、それ以上読み込むことなくリターンします。

* ダーティマスクが 0 以外の値のときは、OnDeserialize 関数は、設定されたダーティビットに対応する SyncVar 用の値を読み込みます。

* SyncVar フック関数がある場合、それはストリームから読み出された値によって実行されます。

Static Variables

clientAuthorityCallbackオブジェクトのクライアント権限の状態が変更したとき、通知されるように設定することができるコールバック

Variables

assetIdサーバーに接続されているすべてのクライアント上にゲームオブジェクトが生成されるときソースアセット(source asset)を見つけるために使う一意の識別子
clientAuthorityOwnerこのオブジェクトの権限を持っているクライアント。クライアントが権限を持たない場合は null になります。
connectionToClientこの NetworkIdentity に関連付けられた接続。これはサーバー上のプレイヤーオブジェクトのみ有効です。
connectionToServerこの NetworkIdentity に関連付けられた UConnection。これはローカルクライアント上のプレイヤーオブジェクトのみを有効にします。
hasAuthorityこのオブジェクトが分散ネットワーク上のアプリケーションで、信頼できるバージョンである場合、True を返します。
isClientサーバー上で生成されたオブジェクトがクライアント上で実行している場合、True を返します。
isLocalPlayerこのオブジェクトがローカルマシン上のプレイヤーを表すものである場合、これは true を返します。
isServerサーバー上で生成されたオブジェクトがサーバー上で実行している場合、True を返します。
localPlayerAuthority localPlayerAuthority とは、「所有権」(owning)を有するプレイヤーのクライアントが自分のゲームのプレーヤーオブジェクトに対する権限を有することを意味します。
netIdこの特殊なオブジェクトのインスタンスに関するユニークな識別子は、ネットワーク接続されたクライアントやサーバー間のオブジェクトを追跡するために使われます。
observersこのオブジェクトを見ることができるネットワークコネクション(プレイヤー)の設定
playerControllerIdオブジェクトに関連付けられたプレイヤーの ID 番号
sceneIdシーン内で NetworkIdentity オブジェクトのユニークな識別子です。
serverOnlyゲームがサーバー(またはホスト)として実行しているとき、このオブジェクトだけをシーンに存在させるためのフラグです。
Networking.NetworkIdentityこの NetworkIdentity のために、どのくらい頻繁にネットワークにおける高頻度なアップデートが送信されるかを定義します。

Public Functions

AssignClientAuthorityクライアントの NetworkConnection を通じてクライアントにオブジェクトのコントロールを割り当てられます。
ForceSceneIdシーン ID に特定の値を強制的に設定します。
RebuildObserversこのコンポーネントをアタッチしているオブジェクトをリビルドすることをプレイヤーに通知することができます。OnRebuildObserver のコールバック関数は NetworkBehaviour ごとに実行されます。
RemoveClientAuthorityその接続でクライアントのオブジェクトの所有権を削除します。

Delegates

ClientAuthorityCallbackClientAuthorityCallback のデリゲート型

Inherited members

Variables

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

Public Functions

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 Functions

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

Operators

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

Messages

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 が壊れたときに呼び出されます
OnMasterServerEventMasterServer からイベントを報告してくるときにクライアントまたはサーバー上で呼び出されます
OnMouseDownOnMouseDown は GUIElement または Collider 上でユーザーがマウスボタンをクリックしたときに呼び出されます
OnMouseDragOnMouseDrag はユーザーが GUIElement または Collider をマウスでクリックし、ドラッグしている間呼び出されます。
OnMouseEnterOnMouseEnter は GUIElement または Collider 上にマウスが乗ったときに呼び出されます
OnMouseExitOnMouseExit は GUIElement または Collider 上からマウス離れたときに呼び出されます
OnMouseOverOnMouseOver は GUIElement または Collider 上にマウスがあり続ける限り毎フレーム呼び出され続けます
OnMouseUpOnMouseUp はユーザーがマウスボタンを離したときに呼び出されます
OnMouseUpAsButtonOnMouseUpAsButton はマウスを押した時と同じ GUIElement や Collider 上でマウスを離した時のみに呼び出されます。
OnNetworkInstantiateNetwork.Instantiate でインスタンス化されたオブジェクトに対して呼び出されます
OnParticleCollisionパーティクルがコライダーにヒットしたときに OnParticleCollision が呼び出されます
OnParticleTriggerOnParticleTrigger は、パーティクルシステムのパーティクルが Triggers モジュールの条件を満たすときに呼び出されます。
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 が有効の場合に、毎フレーム呼び出されます