Version: 2017.2
オブジェクトの可視性
NetworkBehaviour コールバック

Network Manager コールバック

ゲームのホストサーバーへの接続種類によって異なる Network Manager コールバックについて説明します。

ネットワークのコールバックに関しての詳細は、 NetworkBehaviour コールバック を参照してください。

Local 接続コールバック

ゲームの状態によって異なるコールバックが発信されます。3 つの状態があり、Network Manager HUD で設定可能です。

  • Host: ゲームを Host モードに設定するには、LAN Host(H) を選択するか、API 関数 StartHost() を使用します。

  • Client: ゲームを Client モードに設定するには、LAN Client(C) を選択しサーバー IP をテキストフィールドに入力するか、API 関数 StartClient() を使用します。サーバー IP は同じローカルネットワーク上になければなりません。同じマシンに接続している場合は、“localhost” と入力します。

  • Server: ゲームを Server モードに設定するには、LAN Server Only(S) を選択するか、API 関数 StartServer() を使用します。

ランタイムの間、Network Manager HUD の制御も、Network Manager HUD コンポーネントのインスペクターウィンドウで可能です。これにアクセスするには Runtime Controls をクリックしてください。

ここでは、各モードでのコールバックを説明しています。ゲーム状態の設定についての詳細は、NetworkManager を使用する を参照してください。

コールバックのなかには、ゲームの実行時に複数のインスタンスを必要とするものもあります (例えば、2 つのスタンドアロンインスタンスや、1 つのスタンドアロンと 1 つのエディター内インスタンス)。これらのインスタンスはマシンがローカルネットワークを通して接続している限り、同じマシン上や、別個のマシンに置くことができます。

Host コールバック

これらのコールバックを取得するために、2 つのゲームインスタンスが必要です。1 つは Host モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Host モードで実行するインスタンスに対してのみ呼び出されます。

コールバックを得る手順は以下のとおりです。インスタンスを止めるには、Stop を押すか API 関数 StopHost() を使用します。

Step 1: Host インスタンスを開始します。

  • (Start() 関数が呼び出されます。)

  • OnStartHost

  • OnStartServer

  • OnServerConnect

  • OnStartClient

  • OnClientConnect

  • OnServerSceneChanged

  • OnServerReady

  • OnServerAddPlayer

  • OnClientSceneChanged

Step 2: Client インスタンスを開始します。

  • OnServerConnect

  • OnServerReady

  • OnServerAddPlayer

Step 3: Client インスタンスを止めます。

  • OnServerDisconnect

Step 4: Host インスタンスを止めます。

  • OnStopHost

  • OnStopServer

  • OnStopClient

Client コールバック

これらのコールバックを取得するために、2 つのゲームインスタンスが必要です。1 つは Server モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Client モードで実行するインスタンスに対してのみ呼び出されます。

コールバックを得るには、最初に Server モードのインスタンスを起動し、それから、以下の手順にしたがってコールバックを受けます。インスタンスを止めるには、Stop を押すか、API 関数 StopHost() を使用します。

Step 1: Client インスタンスを開始します。

  • (Start() 関数が呼び出されます。)

  • OnStartClient

  • OnClientConnect

  • OnClientSceneChanged

Step 2: Server インスタンスを止めます。

  • OnStopClient

  • OnClientDisconnect

Server コールバック

これらのコールバックを取得するために、2 つのゲームインスタンスが必要です。1 つは Server モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Server モードで実行するインスタンスに対してのみ呼び出されます。

コールバックを得る手順は以下のとおりです。インスタンスを止めるには、Stop を押すか API 関数 StopHost() を使用します。

Step 1: Server インスタントを開始します。

  • (Start() 関数が呼び出されます)

  • OnStartServer

  • OnServerSceneChanged

Step 2: Client インスタンスを開始します。

  • OnServerConnect

  • OnServerReady

  • OnServerAddPlayer

Step 3: Client インスタンスを止めます。

  • OnServerDisconnect

Step 4: Server インスタンスを止めます。

  • OnStopServer

Internet 接続コールバック

ホストサーバーへの接続は Unity MatchMaker システムをとおして行われます。MatchMaker はリレーサーバーを経由して接続を行います。

ゲームの状態によって、異なるコールバックが発信されます。MatchMaker には HostClient、 2 つの状態があります。 MatchMaker を使用するには、ゲームを実行し Network Manager HUD メニューから Enable Match Maker (M) を選びます。

すると MatchMaker メニューが開きます。

  • Host: ゲームを Host モードに設定するには、Enable Match Maker (M) > Create Internet Match を選択するか、API 関数 CreateMatch() を使用します。

  • Client: ゲームを Client モードに設定するには、Enable Match Maker (M) > Find Internet Match > Join Internet Match を選択するか、API 関数 JoinMatch() を使用します。

ここでは、各モードでのコールバックを説明しています。ゲーム状態の設定についての詳細は、NetworkManager を使用する を参照してください。

コールバックのなかには、ゲームの実行時に複数のインスタンスを必要とするものもあります (例えば、2 つのスタンドアロンインスタンスや、1 つのスタンドアロンと 1 つのエディター内インスタンス)。これらのインスタンスは同じマシン上、別個のマシン上、同じネットワーク上、別個のネットワーク上に置くことができます。ただし、すべてのマシンがインターネット接続を持つ必要があります。MatchMaker を使用すると、インターネットを使ってゲームインスタンスに接続することができます。つまり、ゲームのインスタンスを持つマシーンが遠く離れた外国にあるかもしれません。

Host MatchMaker コールバック

これらのコールバックを取得するために、2 つのゲームインスタンスが必要です。1 つは Host モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Host モードで実行するインスタンスに対してのみ呼び出されます。

コールバックを得る手順は以下のとおりです。インスタンスを止めるには、Stop を押すか API 関数 StopHost() を使用します。

Step 1: Host インスタンスを開始します。

  • (Start() 関数が呼び出されます。)

  • OnStartHost

  • OnStartServer

  • OnServerConnect

  • OnStartClient

  • OnMatchCreate

  • OnClientConnect

  • OnServerSceneChanged

  • OnServerReady

  • OnServerAddPlayer

  • OnClientSceneChanged

Step 2: Client インスタンスを開始し Join Internet Match を選択するか、API 関数 JoinMatch() を使用します。

  • OnServerConnect

  • OnServerReady

  • OnServerAddPlayer

Step 3: Client インスタンスを止めます。

  • OnServerDisconnect

Client MatchMaker コールバック

これらのコールバックを取得するために、2 つのゲームインスタンスが必要です。1 つは Host モードで実行するもの、もう 1 つは Client モードで実行するものです。これらのコールバックは Client モードで実行するインスタンスに対してのみ呼び出されます。

コールバックを得るには、最初に Host モードのインスタンスを起動し、Client インスタンスを起動します。それから、以下の手順にしたがってコールバックを受けます。インスタンスを止めるには、Stop を押すか、API 関数 StopHost() を使用します。

Step 1: Client インスタンスを開始し Find Internet Match を選択するか、オンラインゲームのリストを見るために API 関数 ListMatches() を使用します。

  • (Start() 関数が呼び出されます。)

  • OnMatchList

Step 2: Client インスタンス上で Join Match を押すか、オンラインゲームに参加するために API 関数 JoinMatch() を使用します。

  • OnStartClient

  • OnMatchJoined

  • OnClientConnect

  • OnClientSceneChanged

Step 3: Host インスタンスを止めます。

  • OnStopClient

  • OnClientDisconnect

オブジェクトの可視性
NetworkBehaviour コールバック