2017-02-20 4 views
-1

マルチプレイヤー(UNITYネットワーキングロビー資産を使用して)のタグに応じてプレーヤーをランダム化する方法は?例えば、私はタグ「Flee」で選手を生み出した後、「チェイサー」になる人を決定するためにランダム化したい。だから5人のプレイヤーがいる場合、そのうちの4人は "Flee"タグを持っていて、もう1人は "チェイサー"でなければなりません。私はこれをやろうとしていますが、何が起きるかはクライアントごとに異なります。そのため、クライアントAは自分の視点で「チェイサー」とタグ付けされることがありますので、「Flee」とタグ付けされます。だから基本的にはすべてのクライアントで無作為化されますが、私が望むのはサーバー内でランダム化して「チェイサー」タグを決定することだけです。ヘルプは非常に高く評価されます。ありがとうございました!マルチプレイヤーネットワークUnityのタグに応じてプレーヤーをランダム化

答えて

0

OnServerAddPlayer NetworkManagerを上書きするか、NetworkManager OnServerAddPlayerを制御するための新しいスクリプトを追加する必要があります。

私はNetworkMangerを上書きして使用していましたが、CNetworkMangerと呼んでいます。インスペクタでは、NetworkIdentityオブジェクトを2つ追加してプレイヤープレハブに追加します。

public override void OnServerAddPlayer (NetworkConnection conn, short playerControllerId) { 
      var player = (GameObject)GameObject.Instantiate(spawnPrefabs[{{ YOUR TAG INDEX }}], 
       Vector3.zero, 
       Quaternion.identity); 
     } 
関連する問題