0

theNumber在理解如何添加和同步属性时有一点问题。

1) 我有两个玩家

2)当玩家生成时,我想theNumber添加一个,以便每个玩家报告不同的序列号

我只是没有让它工作,并希望得到一些帮助。

以下代码放置在生成的玩家身上。

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 回答