0

プロパティtheNumberを追加して同期する方法を理解するのに少し問題があります。

1) 私は 2 人のプレーヤーを持っています。

theNumber2) プレイヤーがスポーンするとき、各プレイヤーが異なる連番を報告するように 1 つ追加したい

私はそれを機能させないだけで、助けていただければ幸いです。

次のコードは、スポーンされたプレーヤーに配置されます。

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;

public class Player : NetworkBehaviour {

[SyncVar] public int theNumber;
private int _nr;

public override void OnStartLocalPlayer () {
    print ("OnStartLocalPlayer");
    _nr = theNumber;
    CmdX (theNumber);
    DoCalc ();
}

[Command]
void CmdX (int myInt) {
    print ("theNumber: " + myInt);
}

[Client]
void DoCalc () {
    _nr++;
    CmdPrint (_nr);
}

[Command]
void CmdPrint (int nr) {
    theNumber = nr;
    print ("CLIENT CONNECTED WITH THE FOLLOWING NUMBER: " + theNumber);
}

}
4

1 に答える 1

1

新しいクライアントが接続して送信するときに、サーバー上の値を変更する必要があります。見た目から、クライアントでのみ値を変更しています。さらに、theNumber の [SyncVar] 属性はクライアント間で値を同期するため、クライアントごとに同じ値に変更される場合があります。

詳細はこちら: http://docs.unity3d.com/ScriptReference/Networking.SyncVarAttribute.html

于 2016-01-18T08:16:16.667 に答える