tanaka's Programming Memo

プログラミングについてのメモ。

Unity5.1 ネットワークシステム Scene Objects

前へ | 次へ

UNet Unity5.1からの新しいネットワークシステム
Unity5.1のネットワークマニュアル斜め読み(2)
UNet NetworkManagerの利用
Unity5.1 ネットワークシステムのオブジェクト生成
Unity5.1 ネットワークシステムの状態同期
Unity5.1 ネットワークシステムのRemote Actions
Unity5.1 ネットワークシステム PlayerObjects
Unity5.1 ネットワークシステム Object Visibility
Unity5.1 ネットワークシステム Network Messages
Unity5.1 ネットワークシステム Matchmaker
Unity5.1 ネットワークシステム Scene Objects
Unity5.1 ネットワークシステム:シングルプレイヤーゲームを多人数に対応させる
Unity5.1 ネットワークシステム Multiplayer Lobby
Unity5.1 ネットワークシステム Network Clients and Servers
Unity5.1 ネットワークリファレンス概要

公式サイトの以下のページの斜め読みメモです。
Unity - マニュアル: Scene Objects

Scene Objects

動的に作成されたオブジェクトはNetworkServer.Spawn()を使ってネットワークに追加されますが、シーンに最初から存在するオブジェクトは異なる手順で追加されます。(最初からシーンに配置されている)これらのオブジェクトはクライアントとサーバーの両方でシーンによって読み込まれて、(オブジェクトを動的に)spawn するメッセージが送られる前に実行環境に存在することになります。

NetworkIdentityコンポーネントを追加したシーン内のすべてのオブジェクトは、シーンが読み込まれた時にはクライアントでもサーバーでもdisableになっています。シーンの読み込みが完了してNetworkServer.SpawnObjects()が呼ばれるとこれらのシーンオブジェクトが有効になります。これはサーバーシーンの読み込みが完了した時にNetworkManagerが自動的に呼び出すか、あるいは手動で直接呼び出します。これによりネットワーク上のシーンオブジェクトは特別な方法でspawnされます。すなわち、
新しいインスタンスが作成されるのではなく、既存のインスタンスをネットワーク上に登場させます。

動的にspawnするオブジェクトではなく、シーンオブジェクトを利用するのにはいくつかのメリットがあります。これらのオブジェクトは・・・

  • レベルと一緒に読み込まれるので、実行時に(spawn処理を完了するまでの)待ち時間が発生しません
  • プレハブと異なる変更を加えることができます
  • シーン内の他のオブジェクトのインスタンスから参照される際に、実行中に参照相手のオブジェクトを検索する必要がありません

NetworkServer.SpawnObjects()が呼び出されてシーンオブジェクトが生成されると、その後はspawnされた他のオブジェクトと同様に振舞います。状態更新が送信されたり、ClientRPCを発行できます。

クライアントがゲームに参加する前にサーバーがシーンオブジェクトをdestroyした場合、参加した新しいクライアント上にそのシーンオブジェクトが生成されることはありません。


前へ | 次へ