Version: 5.6
状態同期の詳細(旧)
ネットワークレベルロード(旧)

ネットワークのインスタンス化(旧)

(Unity 5.1 からは UNET の使用を推奨しています。下記の情報は旧ネットワークシステムのものです。)

Network.Instantiate 関数により、Object.Instantiate でひとつのクライアント上でするのと直感的に同じ方法で、プレハブをすべてのクライアントでインスタンス化できます。インスタンス化するクライアントはオブジェクトをコントロールするもの(すなわち Input クラスはクライアントインスタンスのスクリプトからのみアクセスできます)ですが、変更はネットワーク上に反映されます。

Network.Instantiate() の引数リストは次のとおりです:

static function Instantiate (prefab : Object, position : Vector3, rotation : Quaternion, group : int) : Object


Object.Instantiate と同様に、最初の 3 つの引数は、インスタンス化するプレハブと、希望する配置、回転です。group 引数により、オブジェクトのサブグループを指定して、メッセージのフィルタリングを制御することができ、0 を指定した場合はフィルタリング不要になります(下記 コミュニケーショングループ セクションを参照してください)。

技術的詳細

裏では、ネットワークのインスタンス化は、プレハブの識別子、位置やその他詳細情報を持つ、RPC コールから構成されています。この RPC コールは他の RPC コールと同様にバッファされ、インスタンス化されたオブジェクトは新しいクライアントが接続してきたときに表示されます。バッファリングの詳細については RPC の詳細(旧) を参照してください。

コミュニケーショングループ

コミュニケーショングループは、特定のメッセージを受け取るクライアントを選択するのに使用します。例えば、2 つの接続されたプレーヤーはゲーム世界の別々のエリアに存在するかも知れず遭遇することがないとします。この場合にゲーム状態を 2 つのプレイヤークライアントで受け渡す理由はありませんが、チャット通信だけ許可したいとします。この場合、ゲームプレイのオブジェクトのインスタンス化は制限する必要がありますが、チャット機能を実現するオブジェクトでは制限されないため、それらは別グループに入れる必要があります。

状態同期の詳細(旧)
ネットワークレベルロード(旧)