2016-03-26 22 views
1

2プレーヤー(ホストとクライアント)2つの異なる場所です。特定の場所に出場するプレイヤーなし

プレイヤーがネットワークマネージャーによって自動的に生成されるため、これを行う方法はわかりません。

私は次のことを試してみましたが、恐ろしく失敗している:(。

[Command] 
void CmdSpawn() 
{ 
    var go = (GameObject)Instantiate(
       gameObject, 
       transform.position + new Vector3(0,1,0), 
       Quaternion.identity); 

    NetworkServer.SpawnWithClientAuthority(go, connectionToClient); 
} 

どのように特定の場所でのIスポーンPlayerオブジェクトはできますか?

答えて

5

NetworkManagerはすでに産卵位置をサポートしてい

プレーヤーをスポーンして、NetworkStartPositionコンポーネントを与える場所にゲームオブジェクトを追加するだけです。 NetworkManagerは自動的に開始位置を検出し、自動的に "Player Spawn Method"の設定に従って "ランダム"(1人のスポーン位置がランダムに選ばれます)または "ラウンドロビン"(プレイヤー#0は最初の位置、第2のプレイヤー#1など)。

+0

私はそのコンポーネントを添付しましたが、後で何をしますか?どのプレイヤーにどこでスポーンするかをどのように伝えますか? – Rana

+0

私はすでに説明しました。あなたのどこの部分が不明ですか?もちろん、開始位置の問題を解決するためにカスタムスポーンロジックを実装している場合は、それを削除する必要があります。そのため、NetworkManagerの実装に干渉することはありません。 –

+0

私はそれを働かせました、ありがとう! :) – Rana

1

をプレイヤオブジェクトのスクリプトで変更する位置に問題があります?たとえば、あなたの選手オブジェクトに次のスクリプトを追加してみてください:

void Start() { 
    if (isServer) // host runs 
    { 
     transform.position = new Vector3(0,0,0); 
    } 
    else if (isClient) // client runs 
    { 
     transform.position = new Vector3(10,0,10); 
    } 
} 
+0

私はでしたが、あなたはあなたのゲームコントローラオブジェクト内のスポーン場所のリストを追加することができ – Rana

+0

...すべてのクライアントが同じ場所で産卵しますより。次に、リストからランダムに1つの場所を使用すると、複数の産卵場所があります。 – LapisLazuli

+0

は論理的なようですが、私はそれを試してみましょうあなたに戻って来て、ありがとう – Rana

関連する問題