Network Manager を使用するとき、クライアントがサーバーに接続するとデフォルトでプレイヤーが加えられます。プレイヤーは指定したオブジェクトによって表現されます (詳しくは プレイヤーオブジェクト を参照してください)。プレイヤーオブジェクトは Server (サーバー) と Client (クライアント) インスタンス両方に存在します。
ゲームの接続状態によって異なるコールバックが発信されます。それらは、Network Manager HUD で設定します。
3 つの接続状態があります。
Host: ゲームを Host モードに設定するには、LAN Host(H) を選択します。
Client: ゲームを Client モードに設定するには、LAN Client(C) を選択しサーバー IP をテキストフィールドに入力するか、API 関数 StartClient()
を使用します。サーバー IP は同じローカルネットワーク上になければなりません。同じマシンに接続している場合は、“localhost” と入力します。
Server: ゲームを Server モードに設定するには、LAN Server Only(S) を選択します。
ランタイムの間、Network Manager HUD の制御も、Network Manager HUD コンポーネントのインスペクターウィンドウで可能です。これにアクセスするには Runtime Controls をクリックしてください。
このセクションのコールバックは NetworkBehaviour クラスで決められ、プレイヤーオブジェクト上でのみ呼び出されます。ゲーム状態の設定に関して、詳しくは NetworkManager を使用する を参照してください。
コールバックのなかには、ゲームの実行に複数のインスタンスを必要とするものもあります (例えば、2 つのスタンドアロンインスタンス、1 つのスタンドアロンと 1 つのエディター内インスタンス)。これらのインスタンスはマシンがローカルネットワークを通して接続している限り、同じマシン上、や別のマシンに置くことができます。これは、 MatchMaker でも同じように作動しますが、MatchMaker ではマシンもインターネット接続されている必要があります。
これらのコールバックを取得するために、2 つのゲームインスタンスが必要です。1 つは Server モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Server インスタンス上のプレイヤーオブジェクトに対してのみ呼び出されます。
コールバックを得るには、最初に Server モードのインスタンスを起動し、それから Client インスタンスを開始します。
OnStartServer
OnRebuildObservers
(Start()
関数が呼び出されます。)
これらのコールバックを取得するためには、2 つのゲームインスタンスが必要です。1 つは Server モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Client インスタンス上のプレイヤーオブジェクトに対してのみ呼び出されます。
コールバックを得るには、最初に Server モードのインスタンスを起動し、それから Client インスタンスを開始します。
OnStartClient
OnStartLocalPlayer
OnStartAuthority
(Start()
関数が呼び出されます。)
これらのコールバックを取得するために、エディターかスタンドアロンビルドとして Host モードで実行する 1 つのゲームインスタンスが必要です。これらのコールバックはプレイヤーオブジェクトに対してのみ呼び出されます。
OnStartServer
OnStartClient
OnRebuildObservers
OnStartAuthority
OnStartLocalPlayer
(Start()
関数が呼び出されます。)
OnSetLocalVisibility
OnNetworkDestroy
コールバックを得るためには、1 つは Server モードで実行し、2 つは Client モードで実行する 3 つのスタンドアロンのゲームインスタンスが必要です。
OnNetworkDestroy
コールバックを得る手順は以下のとおりです。
Server インスタンスを開始します。
Client インスタンスを開始します。
2 番目の Client インスタンスを開始します。
両方の Client インスタンスが自動的に Server インスタンスに接続したら、一方の Client インスタンスを止めます。
OnNetworkDestroy
が残りの Client インスタンスで呼び出されますが、Server インスタンス上では呼び出されません。