2016-06-23 1 views
4

私はiOS用の2Dゲームを作成しています。私のゲームでは、2人のプレイヤーとLANのゲームでホストとクライアントのアプローチを使用しています。 ホストは、次のシーンをロードした後、クライアントを待機します。問題は、シーンの読み込みが両方のプレーヤーに同期されていないことです。シーンは他より早く開始されます。私は、他の作業の前にすべてのプレイヤーがシーンをロードするのを待っています。NetworkManagerを使用してすべてのクライアントのシーン読み込みを同期する方法

My NetworkManagerには、オンラインとオフラインのシーンが割り当てられていません。それが動的に追加されるため、playerPrefabもありません。私はServerChangeScene()を使用しています。 私はUnityとネットワーキングではなく、どんな助けにも感謝しています。

public override void OnServerConnect (NetworkConnection conn) 
{ 
    base.OnServerConnect (conn); 

    print ("OnServerConnect"); 

    //not localclient(host) 
    if (client != null && client.connection != conn) { 
     ServerChangeScene ("PlayScene"); 
    } 
} 

答えて

2

回答がないので、私はカスタムメッセージを使用してこれを処理しました。私は "PlayScene"を非同期にロードし、そのallowSceneActivationをfalseに設定する読み込み画面を作成しました。クライアントがOnClientSceneChanged()を呼び出すと、シーンのロードが完了したというメッセージをサーバーに送信します。サーバーはすべてのクライアントをループして、すべてのシーンのロードが完了したことを確認し、すべてのクライアントがシーンのアクティブ化の準備が整ったことを応答します。

+1

私はこれが解決策でなければならないと考えていましたが、他の誰かがより良い解決策を得ることを望んでいました。 –

関連する問題